Oracle - 返回新插入的键值

时间:2009-07-17 19:42:07

标签: stored-procedures oracle10g primary-key

我们有一个带有主键的表,该表通过表上的触发器在插入时填充 - 触发器从我们为表创建的序列中获取下一个序列号,并将其用于插入时键的值。现在我们希望能够在插入过程(PL \ SQL)中返回该值,类似于SQL Server中的select @@ scope_identity。我一整天都在谷歌搜索,基本上没有任何结果 - 以前任何人都成功了吗?

由于

3 个答案:

答案 0 :(得分:20)

我不知道它是否适用于触发器,但RETURNING子句可能正是您所寻找的:

INSERT INTO my_table (col_1, col_2)
  VALUES ('foo', 'bar')
  RETURNING pk_id INTO my_variable;

答案 1 :(得分:0)

我认为您正在寻找可赎回声明。如果你想从Java中获取它,那么这里是javadoc

答案 2 :(得分:0)

为什么不直接返回the_sequence.currval?