OracleにはMySQLのauto_increment、PostgreSQLのserial,bigserialが無い。そこで一般的なのがテーブルにトリガーを設定して自動で行わせるというのがかなり一般的に使用されています。Oracleにも一応テーブルの列にデフォルト値を設定する事は可能なのですが、これにシーケンスを指定するとエラーになるので結局上の方法を選択しないといけなくなる。その方法をメモ

テーブル・シーケンスを作成

CREATE TABLE sample(
    ID number primary key,
    NAME varchar2(50)
);
CREATE SEQUENCE sample_seq;

トリガーを作成

CREATE OR REPLACE TRIGGER sample_trigger
    BEFORE INSERT ON sample
    FOR EACH ROW

    DECLARE
        nn number;
    BEGIN
        SELECT
            sample_seq.NEXTVAL
        INTO
            nn
        FROM
            dual;
        :new.id := nn;
        :new.name := :new.name || '!!';
    END;
/

あとはデータ追加する際にID列を指定しないでINSERTを実行するとナンバリングができている模様