我有一个这样声明的表列:
file_id number(10) generated always as identity primary key,
是否有可能以编程方式获得
currval
/nextval
从它的支持序列而不实际查看 SYS。表来获取序列的名称,然后使用 execute immediate
那个名字?
最佳答案
Is it possible to programatically get a currval/nextval from its backing sequence without actually looking into the SYS
是的,如果你真的需要这样做。您可以简单地在
USER_SEQUENCES
中查找该序列名称。数据字典 View ,或者更好 USER_TAB_IDENTITY_COLS
数据字典 View ,并在您的查询中引用它。下面是一个例子:create table t1(
c1 number generated always as identity primary key
);
insert into t1 values(default);
select * from t1;
C1
-----
1
就我而言,Oracle 为标识列创建的序列名称是
ISEQ$$_92984
.select "ISEQ$$_92984".nextval from dual;
NEXTVAL
-------
2
insert into t1 values(default);
select * from t1;
C1
---------
1
3
关于oracle - 从标识列的支持序列中获取 nextval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44112516/