Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Rufen Sie die zuletzt von Oracle eingefügte IDENTITÄT ab

Brunnen. Oracle verwendet Sequenzen und Standardwerte für die IDENTITY-Funktionalität in 12c. Daher müssen Sie für Ihre Frage über Sequenzen Bescheid wissen.

Erstellen Sie zuerst eine Testidentitätstabelle.

CREATE TABLE IDENTITY_TEST_TABLE
(
  ID NUMBER GENERATED ALWAYS AS IDENTITY 
, NAME VARCHAR2(30 BYTE) 
);

Lassen Sie uns zuerst Ihren Sequenznamen finden, der mit dieser Identitätsspalte erstellt wurde. Dieser Sequenzname ist ein Standardwert in Ihrer Tabelle.

Select TABLE_NAME, COLUMN_NAME, DATA_DEFAULT from USER_TAB_COLUMNS
where TABLE_NAME = 'IDENTITY_TEST_TABLE';

für mich ist dieser Wert "ISEQ$$_193606"

einige Werte einfügen.

INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla');
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('aydın');

dann Wert einfügen und Identität finden.

INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla');
 SELECT "ISEQ$$_193606".currval from dual; 

Sie sollten Ihren Identitätswert sehen. Wenn Sie in einem Block arbeiten möchten, verwenden Sie

declare
   s2 number;
 begin
   INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla') returning ID into s2;
   dbms_output.put_line(s2);
 end;

Die letzte ID ist der Name meiner Identitätsspalte.