您好,登錄后才能下訂單哦!
在 12c 中現在可以創建新的會話級數據庫序列來支持會話級序列值。這些序列的類型在有會話級的全局臨時表上最為適用。
會話級序列會產生一個獨特范圍的值,這些值是限制在此會話內的,而非超越此會話。一旦會話終止,會話序列的狀態也會消失
SQL> create sequence session_seq start with 1 increment by 1 session;
Sequence created.
SQL> select dbms_metadata.get_ddl('SEQUENCE','SESSION_SEQ','SYS') FROM DUAL;
CREATE SEQUENCE "SYS"."SESSION_SEQ" MINVALUE 1 MAXVALUE 999999999999999999
SQL> select session_seq.nextval from dual;
1
另開一個窗口
![](https://s1.51cto.com/images/blog/201801/03/1a5988b3fcf0f27cbf8c02640235bf7a.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
可見,序列的值只對SESSION級別有影響,可以通過ALTER SEQUENCE命令對某個序列設置為全局或會話級,如下為將這個序列修改為全局。序列值會從初始值重新開始
SQL> ALTER SEQUENCE session_seq GLOBAL;
Sequence altered.
SQL> select session_seq.nextval from dual;
1
SQL> /
2
另一個
通過ALTER SQEUENCE命令將序列由全局修改為會話級和將序列從會話級修改為全局有所不同,將序列由全局修改為會話級時,序列的值不會重新初始化,而是根據當前會話的上一個序列值開始,詳見下面的測試。
對于會話級序列,CACHE, NOCACHE, ORDER 或 NOORDER 語句會予以忽略。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。