We zullen. Oracle gebruikt reeksen en standaardwaarden voor IDENTITY-functionaliteit in 12c. Daarom moet u weten over reeksen voor uw vraag.
Maak eerst een testidentiteitstabel.
CREATE TABLE IDENTITY_TEST_TABLE
(
ID NUMBER GENERATED ALWAYS AS IDENTITY
, NAME VARCHAR2(30 BYTE)
);
Laten we eerst uw reeksnaam vinden die is gemaakt met deze identiteitskolom. Deze reeksnaam is een standaardwaarde in uw tabel.
Select TABLE_NAME, COLUMN_NAME, DATA_DEFAULT from USER_TAB_COLUMNS
where TABLE_NAME = 'IDENTITY_TEST_TABLE';
voor mij is deze waarde "ISEQ$$_193606"
voeg enkele waarden in.
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla');
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('aydın');
voer dan waarde in en vind identiteit.
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla');
SELECT "ISEQ$$_193606".currval from dual;
je zou je identiteitswaarde moeten zien. Als je het in één blok wilt doen, gebruik dan
declare
s2 number;
begin
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla') returning ID into s2;
dbms_output.put_line(s2);
end;
Laatste ID is de naam van mijn identiteitskolom.