上手。 Oracleは、12cのIDENTITY機能にシーケンスとデフォルト値を使用します。したがって、質問のシーケンスについて知る必要があります。
まず、テストIDテーブルを作成します。
CREATE TABLE IDENTITY_TEST_TABLE
(
ID NUMBER GENERATED ALWAYS AS IDENTITY
, NAME VARCHAR2(30 BYTE)
);
まず、このID列で作成されたシーケンス名を見つけましょう。このシーケンス名は、テーブルのデフォルト値です。
Select TABLE_NAME, COLUMN_NAME, DATA_DEFAULT from USER_TAB_COLUMNS
where TABLE_NAME = 'IDENTITY_TEST_TABLE';
私にとって、この値は「ISEQ $$_193606」です
いくつかの値を挿入します。
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla');
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('aydın');
次に、値を挿入してIDを見つけます。
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla');
SELECT "ISEQ$$_193606".currval from dual;
ID値が表示されます。 1つのブロックで実行する場合は、
を使用します。declare
s2 number;
begin
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla') returning ID into s2;
dbms_output.put_line(s2);
end;
最後のIDは私のID列名です。