加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 检索Oracle上次插入的IDENTITY

发布时间:2020-12-12 06:30:33 所属栏目:MsSql教程 来源:网络整理
导读:从Oracle 12c开始,我们可以使用IDENTITY字段. 有没有办法检索最后插入的标识(即选择@@ identity或选择LAST_INSERTED_ID()等)? 解决方法 好. Oracle在12c中使用IDENTITY功能的序列和默认值.因此,您需要了解问题的序列. 首先创建一个测试标识表. CREATE TABLE
从Oracle 12c开始,我们可以使用IDENTITY字段.

有没有办法检索最后插入的标识(即选择@@ identity或选择LAST_INSERTED_ID()等)?

解决方法

好. Oracle在12c中使用IDENTITY功能的序列和默认值.因此,您需要了解问题的序列.

首先创建一个测试标识表.

CREATE TABLE IDENTITY_TEST_TABLE
(
  ID NUMBER GENERATED ALWAYS AS IDENTITY,NAME VARCHAR2(30 BYTE) 
);

首先,让我们找到使用此标识列创建的序列名称.此序列名称是表中的默认值.

Select TABLE_NAME,COLUMN_NAME,DATA_DEFAULT from USER_TAB_COLUMNS
where TABLE_NAME = 'IDENTITY_TEST_TABLE';

对我来说这个值是“ISEQ $$_ 193606”

插入一些值.

INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla');
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('ayd?n');

然后插入值并找到身份.

INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla');
 SELECT "ISEQ$$_193606".currval from dual;

你应该看到你的身份价值.如果你想在一个块中使用

declare
   s2 number;
 begin
   INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla') returning ID into s2;
   dbms_output.put_line(s2);
 end;

最后一个ID是我的标识列名称.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读