Oracle始终获取具有标识的插入行的ID

Ace*_*ur4 4 sql oracle plsql dml oracle12c

目前我有一个具有这种结构的表:

CREATE TABLE "DUMMY_SCHEMA"."NAMES"
(
  "ID" NUMBER(10,0) GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1 CACHE 20) NOT NULL 
, "NAME" NVARCHAR2(1024) NOT NULL 
, CONSTRAINT "NAMES_PK" PRIMARY KEY ("ID")
);
Run Code Online (Sandbox Code Playgroud)

在 SQL Server 中,我只需要执行以下操作即可获取插入行的 ID。

INSERT INTO [NAMES]([NAME])VALUES('Random'); SELECT SCOPE_IDENTITY() Id
Run Code Online (Sandbox Code Playgroud)

Oracle 12c 的等效项是什么?

wol*_*lφi 6

等价物是

INSERT INTO dummy_schema.names (name) VALUES ('Random') 
RETURNING id INTO :myvalue;
Run Code Online (Sandbox Code Playgroud)

获取返回 ID 的机制取决于宿主语言(Java、PL/SQL、SQL*Plus 等)。