Oracle 12C -- sequence的新特性

如果使用了全局临时表和sequence,有时会遇到一些问题。因为全局临时表与会话(或会话中的事务)相关,而sequence与数据库级别相关。

在12C中,可以创建一个sequence,其使用范围只是针对一个给定的session。

--当全局临时表gtt在某个会话中被清空时(如commit),sequence的值不会被重置。下次调用该sequence会使用其nextval值。

SQL> connect scott/tiger
SQL> drop table gtt;
SQL> create global temporary table gtt(id number,seq_number number);
SQL> grant all on gtt to tiger;
SQL> drop sequence seq_session;
SQL> create sequence seq_session start with 1 session;
SQL> grant all on seq_session to tiger;
SQL> insert into gtt values(1,seq_session.nextval);
SQL> insert into gtt values(2,seq_session.nextval);
SQL> select * from scott.gtt;

        ID SEQ_NUMBER
---------- ----------
         1          1
         2          2

SQL>
commit;
SQL> select * from scott.gtt;

no rows selected

SQL>
insert into gtt values(1,seq_session.nextval);
insert into gtt values(2,seq_session.nextval);
SQL> select * from scott.gtt;

        ID SEQ_NUMBER
---------- ----------
         1          3
         2          4

SQL> 

继续测试。
--会话结束,sequence的值会被重置

SQL>conn tiger/tiger
SQL>drop synonym gtt;
SQL>drop synonym seq_session;
SQL>create synonym gtt for scott.gtt;
SQL>create synonym seq_session for scott.seq_session;
SQL> select * from gtt;

no rows selected

SQL>
SQL> insert into gtt values(1,seq_session.nextval);
SQL> insert into gtt values(2,seq_session.nextval);--在11g中,这里查询结果是5,6
SQL> select * from gtt;

        ID SEQ_NUMBER
---------- ----------
         1          1
         2          2

SQL>
SQL> commit;
SQL> select * from gtt;

no rows selected

SQL> 

SQL> conn scott/tiger
SQL> insert into gtt values(1,seq_session.nextval);
SQL> insert into gtt values(2,seq_session.nextval);--在11g中,这里查询结果是7,8
SQL> select * from gtt;

        ID SEQ_NUMBER
---------- ----------
         1          1
         2          2

SQL> 
时间: 2024-10-09 03:55:01

Oracle 12C -- sequence的新特性的相关文章

【转载】Oracle ACE总监对Oracle 12c的一些新特性总结

本文是Oracle ACE总监Syed Jaffer Hussain对Oracle数据库12c的一些新特性总结,包括数据库管理.RMAN.高可用性以及性能调优等内容. 主要内容:1. 在线迁移活跃的数据文件2. 表分区或子分区的在线迁移3. 不可见字段4. 相同字段上的多重索引5. DDL日志6. 临时undo7. 新的备份用户特权8. 如何在RMAN中执行SQL语句9. RMAN中的表级别恢复10. PGA的大小限制问题11. 对表分区维护的增强12. 数据库升级的改进13. 通过网络恢复数据

Oracle 数据库12c 16大新特性总结

Oracle 12c 已发布很久,一直想找个时间好好学习一下,毕竟后续12c将会逐渐替代现有数据库版本,成为主流数据库版本.现就12c 一些常用的 特性给大家一起学习一下. 1. 在线重命名和重新定位活跃数据文件 不同于以往的版本,在Oracle数据库12c R1版本中对数据文件的迁移或重命名不再需要太多繁琐的步骤,即把表空 间置为只读模式,接下来是对数据文件进行离线操作.在12c R1中,可以使用ALTER DATABASE MOVE DATAFILE这 样的SQL语句对数据文件进行在线重命名

Oracle 灾难恢复以及11g新特性恢复指导

实验: 数据库灾难恢复(数据文件.控制文件.参数文件.归档文件等丢失) 法一:利用冷备 法二:RMAN恢复及11g新特性(list/advise/repair failure,create spfile from memory) 1.配置catalog数据库 1)catalog目录库:创建大文件表空间.用户.授权 create  bigfile tablespace rc_data datafile '/u01/app/oracle/oradata/ORCL/rc_data.dbf' size

【Oracle12C】部署服务建立用户及建库建表中遇到的问题以及12C的一些新特性

这是一篇oracle小白的不堪折磨,苦苦挣扎所作,所费心血颇深. Oracle12C与11g版本的差异 在创建用户时遇到一个问题(我的发现都是根据遇到的问题来研究的):问题描述:在创建服务所需用户时提示ORA-65096:公用用户名或角色无效.问题原因:根据Oracle官方文档得知,12C版本创建公有用户名(CDB用户)必须以c##或C##开头,测试后发现登陆时也必须加C##用户名登陆. CDB与PDB解释:Oracle 12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租

goldengate 12c 12.2 新特性

GoldenGate 12.2已经提供下载,增加了不少新特性 1. 异构配置加强不在需要sourceDefs和AssumeTargetDefs文件,在队列文件中已经包含metadata信息,比如table name, column name, column type等,进一步降低OGG在异构环境下配置的工作量: 2. 内置心跳表在早期的OGG版本中,如果要监控进程的延迟状态,需要手工创建心跳表,现在通过配置就可以启用心跳表监控功能,在GGSCI中add heartBeatTable即可.此时,会

Oracle Database 12.2新特性详解

在2015年旧金山的Oracle OpenWorld大会上,Oracle发布了Database 12.2的Beta版本,虽然Beta版本只对部分用户开放,但是大会上已经公布了12.2的很多重要的新特性,云和恩墨是Oracle的Beta用户,已经开始测试这一产品.在刚刚结束的"Oracle技术嘉年华"大会上,更详细的主题分享披露了更多内容.在这篇文章中,我将和大家一一来细数Oracle Database 12.2的新特性. Oracle Sharding的实现 简单来说,Oracle的S

Oracle GoldenGate 19.1新特性

1.GoldenGate 19.1 新特性概览a.支持Oracle数据库19.1 长期支持发布版本.集成Oracle GoldenGate 12.3版的最终补丁集更新.b.微服务的安全性和可管理性增强与密钥管理系统集成,支持DMZ环境.Defaults changed to TLS1.2, Digest Auth, Strong Password VerifierManaged profiles for AutoStart, AutoRestart, and Key Management.c.性

浅谈oracle 12C的新特性-CDB和PDB

最近看到好多人都在尝试oracle中的12C新特性-容器数据库,今年3月orcle退出了Release2版本,可以算是一个稳定版本了.下午着手尝试了一下,还是蛮不错得 1.前言 CDB与PDB是Oracle 12C引入的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB).CDB全称为ContainerDatabase,中文翻译为数据库容器,PDB全称为Pluggable Datab

Oracle 12c中增强的PL/SQL功能

英文链接:http://www.oracle.com/technetwork/issue-archive/2013/13-sep/o53plsql-1999801.html Oracle 12c增强了一系列定义和执行PL/SQL程序单元的方式.本文覆盖了Oracle 12c几个新特性: 1.为结果缓存条件优化了调用者权限函数 2.可以在SQL语句中定义和执行PL/SQL函数 3.通过ACCESSIBLE BY条件指定一个白名单来限制程序单元的访问 4.可直接授权角色给指定程序单元 调用者权限和P