4
我有一個表列的後盾序列NEXTVAL聲明如下:充分利用標識列
file_id number(10) generated always as identity primary key,
是否有可能以編程方式得到它的支持序列currval
/nextval
而無需真正查看到SYS。表獲取序列的名稱,然後在該名稱上使用execute immediate
?
我有一個表列的後盾序列NEXTVAL聲明如下:充分利用標識列
file_id number(10) generated always as identity primary key,
是否有可能以編程方式得到它的支持序列currval
/nextval
而無需真正查看到SYS。表獲取序列的名稱,然後在該名稱上使用execute immediate
?
是否有可能以編程方式獲得CURRVAL /從其 後盾序列NEXTVAL而無需真正查看到SYS
是的,如果你真的需要這麼做。您可以簡單地在USER_SEQUENCES
數據字典視圖中查找該序列名稱,或者更好地查找USER_TAB_IDENTITY_COLS
數據字典視圖,並在查詢中引用它。這裏有一個例子:
create table t1(
c1 number generated always as identity primary key
);
insert into t1 values(default);
select * from t1;
C1
-----
1
在我的情況下,一個序列的名字甲骨文標識列創建爲ISEQ$$_92984
。
select "ISEQ$$_92984".nextval from dual;
NEXTVAL
-------
2
insert into t1 values(default);
select * from t1;
C1
---------
1
3
這與調查sys表(因爲您需要首先將序列的名稱提取到變量中,然後通過變量名查詢序列)基本相同,假設我只知道表和列的名稱在編寫plsql代碼的時候。我希望有一些簡單的東西,比如TABLE.COLUMN.NEXTVAL :) –
不,不能這樣做。 –
我很懷疑,謝謝你的確認。 –