在 Oracle 中插入后返回标识列的值
Returning the value of identity column after insertion in Oracle
如何在 Oracle 12c 中 return 标识列 (id) 的值插入后?似乎大多数方法都使用序列来取回插入项目的 ID。
只需使用 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 12c 中 return 标识列 (id) 的值插入后?似乎大多数方法都使用序列来取回插入项目的 ID。
只需使用 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>