Редактировать: , как отметил Марк Харрисон, это предполагает, что у вас есть контроль над тем, как создается идентификатор вашей вставленной записи. Если у вас есть полный контроль и ответственность за это, это должно работать ...
Используйте хранимую процедуру, чтобы выполнить вставку и вернуть идентификатор.
например: для таблицы имен с идентификаторами:
PROCEDURE insert_name(new_name IN names.name%TYPE,
new_name_id OUT names.id%TYPE)
IS
new_id names.id%TYPE;
BEGIN
SELECT names_sequence.nextVal INTO new_id FROM dual;
INSERT INTO names(id, name) VALUES(new_id, new_name);
new_name_id := new_id;
END;
Использование хранимых процедур для операций CRUD - хорошая идея, независимо от того, используете ли вы слой ORM, так как это делает ваш код более независимым от базы данных, помогает против атак внедрения и т. Д.