Такие понятия как "автоинкрементное поле", "identity", в Oracle отсутствуют. Для генерации уникальных значений поля как правило используется объект базы данных SEQUENCE (последовательность).
Для получения очередного уникального значения последовательность может быть использована напрямую, либо через триггер:
-- Использование последовательности напрямую.
INSERT INTO test (test_id, code) VALUES (sq_test.NEXTVAL, 'One');
-- Определение значения первичного ключа в триггере.
INSERT INTO test (code) VALUES ('Two');
INSERT INTO test (test_id, code) VALUES (NULL, 'Three');
Дополнительно: получение значения поля (любого, не только ключевого и/или сгенеренного из последовательности) после добавления одиночной записи (через INSERT INTO .. VALUES) через RETURN[ING]. (VAR - команда для SQL*Plus, деклалирующая переменную test_id)
var test_id number
INSERT INTO test (test_id, code) VALUES (sq_test.NEXTVAL, 'One') RETURN test_id INTO :test_id;
INSERT INTO test (code) VALUES ('Two') RETURN test_id INTO :test_id;
При использовании конструкции INSERT INTO .. SELECT опция RETURN[ING] недоступна.
Ссылки по теме