Studna. Oracle používá sekvence a výchozí hodnoty pro funkci IDENTITY v 12c. Proto potřebujete vědět o sekvencích pro vaši otázku.
Nejprve vytvořte testovací identifikační tabulku.
CREATE TABLE IDENTITY_TEST_TABLE
(
ID NUMBER GENERATED ALWAYS AS IDENTITY
, NAME VARCHAR2(30 BYTE)
);
Nejprve najděte název vaší sekvence, který je vytvořen s tímto sloupcem identity. Tento název sekvence je výchozí hodnotou ve vaší tabulce.
Select TABLE_NAME, COLUMN_NAME, DATA_DEFAULT from USER_TAB_COLUMNS
where TABLE_NAME = 'IDENTITY_TEST_TABLE';
pro mě je tato hodnota "ISEQ $ $ _193606"
vložte nějaké hodnoty.
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla');
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('aydın');
pak vložte hodnotu a najděte identitu.
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla');
SELECT "ISEQ$$_193606".currval from dual;
měli byste vidět hodnotu své identity. Pokud chcete dělat v jednom bloku, použijte
declare
s2 number;
begin
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla') returning ID into s2;
dbms_output.put_line(s2);
end;
Last ID je název sloupce mé identity.