Bueno. Oracle usa secuencias y valores predeterminados para la funcionalidad de IDENTIDAD en 12c. Por lo tanto, necesita conocer las secuencias para su pregunta.
Primero cree una tabla de identidad de prueba.
CREATE TABLE IDENTITY_TEST_TABLE
(
ID NUMBER GENERATED ALWAYS AS IDENTITY
, NAME VARCHAR2(30 BYTE)
);
Primero, busquemos el nombre de la secuencia que se crea con esta columna de identidad. Este nombre de secuencia es un valor predeterminado en su tabla.
Select TABLE_NAME, COLUMN_NAME, DATA_DEFAULT from USER_TAB_COLUMNS
where TABLE_NAME = 'IDENTITY_TEST_TABLE';
para mí este valor es "ISEQ$$_193606"
inserte algunos valores.
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla');
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('aydın');
luego inserte el valor y encuentre la identidad.
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla');
SELECT "ISEQ$$_193606".currval from dual;
deberías ver tu valor de identidad. Si quieres hacerlo en un bloque usa
declare
s2 number;
begin
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla') returning ID into s2;
dbms_output.put_line(s2);
end;
El último ID es el nombre de mi columna de identidad.