Oracle始终获取具有标识的插入行的ID [重复]
Posted
技术标签:
【中文标题】Oracle始终获取具有标识的插入行的ID [重复]【英文标题】:Oracle get id of inserted row with identity always [duplicate] 【发布时间】:2018-12-05 14:58:32 【问题描述】:目前我有一个具有这种结构的表:
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")
);
在 SQL Server 中,我只需要执行以下操作即可获取插入行的 Id。
INSERT INTO [NAMES]([NAME])VALUES('Random'); SELECT SCOPE_IDENTITY() Id
Oracle 12c 的等价物是什么?
【问题讨论】:
我建议使用不带“QUOTES”的表名和列名:CREATE TABLE dummy_schema.names (id NUMBER....
是通常的方式...
【参考方案1】:
等价于
INSERT INTO dummy_schema.names (name) VALUES ('Random')
RETURNING id INTO :myvalue;
获取返回 ID 的机制取决于宿主语言(Java、PL/SQL、SQL*Plus 等)。
【讨论】:
谢谢。变量 :myvalue 是什么类型的? 与您的主键列相同的数据类型,在您的情况下为NUMBER(10,0)
。您使用什么语言?
C# 以 dapper 作为 ORM
抱歉,不知道,不过看看***.com/questions/9789737/…
谢谢,终于如你所说的那样工作了!以上是关于Oracle始终获取具有标识的插入行的ID [重复]的主要内容,如果未能解决你的问题,请参考以下文章
Oracle GoldenGate 生成表列时始终标识类型_IT 不允许在目标数据库表中插入