Stored procedures Oracle-返回新插入的键值

Stored procedures Oracle-返回新插入的键值,stored-procedures,oracle10g,primary-key,Stored Procedures,Oracle10g,Primary Key,我们有一个带有主键的表,主键在插入时由表上的触发器填充-触发器从我们为表创建的序列中获取下一个序列号,并将其用于插入时键的值。现在,我们希望能够在insert过程(PL\SQL)中返回该值,类似于SQL Server中的select@@scope\U identity。我在谷歌上搜索了一整天,基本上什么都没找到——以前有人成功过吗 谢谢我想你正在寻找一份可收回的声明。如果您想从Java获取它,请看下面的例子。为什么不直接返回_sequence.currval?我不知道它是否与触发器一起工作,但返

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


谢谢

我想你正在寻找一份可收回的声明。如果您想从Java获取它,请看下面的例子。

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

我不知道它是否与触发器一起工作,但返回子句可能就是您想要的:

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

如果我们可以用PL\SQL中新创建的键填充输出参数,这将很好,这基本上就是我在问题中要问的。键填充在insert触发器中-现在我如何在insert存储过程中获取它?不幸的是,该序列被多个表使用。是的-这看起来很有趣,我将尝试一下。使用该触发器时工作得非常出色!每次我都会得到触发器创建的新键值。谢谢。给了我一个错误,说“缺少关键字”。。。但是我们试图用PHP实现这一点。@Arian,这是PL/SQL代码,您必须将其包装在存储过程中才能将值返回给PHP。