Oracle
 sql >> Database >  >> RDS >> Oracle

Recupera l'ultima IDENTITÀ inserita in Oracle

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à.