在Oracle

时间:2017-07-02 02:19:49

标签: sql oracle

我知道在INSERT语句中使用RETURNING但是需要一种方法让它作为INSERT语句(或封闭事务)的结果返回,或者能够使用SELECT检索该值。有没有办法做到这一点?我不能使用DBMS_OUTPUT。谢谢!

1 个答案:

答案 0 :(得分:2)

RETURNING子句是保证获取INSERT语句生成的ID值的最简单方法。在多用户环境中查询max(id)是不可靠的,尤其是在您使用RAC的情况下。

如果从序列中填充了ID,则可以通过在INSERT中运行来获取序列的当前值:

 select your_sequence.currval from dual;

这意味着您需要知道序列的名称,这并不总是很明显,如果您使用12c标识列,则更是如此。

基本上,如果您希望ID使用RETURNING。