Väl. Oracle använder sekvenser och standardvärden för IDENTITY-funktionalitet i 12c. Därför behöver du känna till sekvenser för din fråga.
Skapa först en testidentitetstabell.
CREATE TABLE IDENTITY_TEST_TABLE
(
ID NUMBER GENERATED ALWAYS AS IDENTITY
, NAME VARCHAR2(30 BYTE)
);
Låt oss först hitta ditt sekvensnamn som skapas med denna identitetskolumn. Detta sekvensnamn är ett standardvärde i din tabell.
Select TABLE_NAME, COLUMN_NAME, DATA_DEFAULT from USER_TAB_COLUMNS
where TABLE_NAME = 'IDENTITY_TEST_TABLE';
för mig är detta värde "ISEQ$$_193606"
infoga några värden.
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla');
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('aydın');
infoga sedan värde och hitta identitet.
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla');
SELECT "ISEQ$$_193606".currval from dual;
du borde se ditt identitetsvärde. Om du vill göra i ett block använd
declare
s2 number;
begin
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla') returning ID into s2;
dbms_output.put_line(s2);
end;
Senaste ID är mitt identitetskolumnnamn.