Oracle - вернуть вновь вставленное значение ключа - PullRequest
10 голосов
/ 17 июля 2009

У нас есть таблица с первичным ключом, которая заполняется при вставке триггером на таблице - триггер получает следующий порядковый номер из последовательности, которую мы создали для таблицы, и использует его для значения ключа на вставке. Теперь мы хотели бы иметь возможность вернуть это значение в нашей процедуре вставки (PL \ SQL), аналогично select @@ scope_identity в SQL Server. Я весь день гуглил и практически ничего не придумал - кому-нибудь это удавалось раньше?

Спасибо

Ответы [ 3 ]

20 голосов
/ 18 июля 2009

Я не знаю, работает ли он с триггерами, но предложение RETURNING может быть тем, что вы ищете:

INSERT INTO my_table (col_1, col_2)
  VALUES ('foo', 'bar')
  RETURNING pk_id INTO my_variable;
0 голосов
/ 17 июля 2009

почему бы просто не вернуть the_sequence.currval?

0 голосов
/ 17 июля 2009

Я думаю, что вы ищете вызываемое утверждение. Вот javadoc , если вы пытаетесь добраться до него с Java.

...