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

Hent Oracle sidst indsatte IDENTITY

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.



  1. Hvordan fungerer Stuff og 'For XML Path' i SQL Server?

  2. Sammenligning af Galera Cluster Cloud-tilbud:Del 1 Amazon AWS

  3. Sådan køres Opret tabel DDL med UDFØR STRAKS i Oracle-databasen

  4. SQL Server:hvordan man efterligner oracle keep dense_rank forespørgsel?