在Oracle中插入后返回标识列的值
Posted
技术标签:
【中文标题】在Oracle中插入后返回标识列的值【英文标题】:Returning the value of identity column after insertion in Oracle 【发布时间】:2015-02-12 07:54:48 【问题描述】:插入后如何在 Oracle 12c 中返回标识列 (id) 的值?似乎大多数方法都使用序列来取回插入项目的 id。
【问题讨论】:
【参考方案1】:只需使用 RETURNING 子句。
例如-
RETURNING identity_id INTO variable_id;
测试用例 -
SQL> set serveroutput on
SQL> CREATE TABLE t
2 (ID NUMBER GENERATED ALWAYS AS IDENTITY, text VARCHAR2(50)
3 );
Table created.
SQL>
SQL> DECLARE
2 var_id NUMBER;
3 BEGIN
4 INSERT INTO t
5 (text
6 ) VALUES
7 ('test'
8 ) RETURNING ID INTO var_id;
9 DBMS_OUTPUT.PUT_LINE('ID returned is = '||var_id);
10 END;
11 /
ID returned is = 1
PL/SQL procedure successfully completed.
SQL>
SQL> select * from t;
ID TEXT
---------- --------------------------------------------
1 test
SQL>
【讨论】:
以上是关于在Oracle中插入后返回标识列的值的主要内容,如果未能解决你的问题,请参考以下文章
oracle 11g - 在oracle 11g数据库中获取标识列的最后一个插入ID的方法是什么?