Bene. Oracle utilizza sequenze e valori predefiniti per la funzionalità IDENTITY in 12c. Pertanto è necessario conoscere le sequenze per la tua domanda.
Per prima cosa crea una tabella di identità di prova.
CREATE TABLE IDENTITY_TEST_TABLE
(
ID NUMBER GENERATED ALWAYS AS IDENTITY
, NAME VARCHAR2(30 BYTE)
);
Innanzitutto, troviamo il nome della sequenza creata con questa colonna di identità. Questo nome di sequenza è un valore predefinito nella tabella.
Select TABLE_NAME, COLUMN_NAME, DATA_DEFAULT from USER_TAB_COLUMNS
where TABLE_NAME = 'IDENTITY_TEST_TABLE';
per me questo valore è "ISEQ$$_193606"
inserisci dei valori.
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla');
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('aydın');
quindi inserisci valore e trova identità.
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla');
SELECT "ISEQ$$_193606".currval from dual;
dovresti vedere il valore della tua identità. Se vuoi fare in un blocco usa
declare
s2 number;
begin
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla') returning ID into s2;
dbms_output.put_line(s2);
end;
L'ultimo ID è il nome della colonna della mia identità.