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.