Godt. Oracle bruger sekvenser og standardværdier til IDENTITY-funktionalitet i 12c. Derfor skal du kende til sekvenser til dit spørgsmål.
Opret først en testidentitetstabel.
CREATE TABLE IDENTITY_TEST_TABLE
(
ID NUMBER GENERATED ALWAYS AS IDENTITY
, NAME VARCHAR2(30 BYTE)
);
Lad os først finde dit sekvensnavn, der er oprettet med denne identitetskolonne. Dette sekvensnavn er en standardværdi i din tabel.
Select TABLE_NAME, COLUMN_NAME, DATA_DEFAULT from USER_TAB_COLUMNS
where TABLE_NAME = 'IDENTITY_TEST_TABLE';
for mig er denne værdi "ISEQ$$_193606"
indsæt nogle værdier.
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla');
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('aydın');
indsæt derefter værdi og find identitet.
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla');
SELECT "ISEQ$$_193606".currval from dual;
du bør se din identitetsværdi. Hvis du vil gøre det i én blok, brug
declare
s2 number;
begin
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla') returning ID into s2;
dbms_output.put_line(s2);
end;
Sidste ID er navnet på min identitetskolonne.