在 12c 中现在可以创建新的会话级数据库序列来支持会话级序列值。这些序列的类型在有会话级的全局临时表上最为适用。 会话级序列会产生一个独特范围的值,这些值是限制在此会话内的,而非超越此会话。一旦会话终止,
在 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 语句会予以忽略。
--结束END--
本文标题: 会话级序列
本文链接: https://www.lsjlt.com/news/35074.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0