`

DB2和Oracle中新建sequence

 
阅读更多
DB2  sequence 的创建是否带有双引号,引发的一个生产系统问题

create sequence x3;   -- 执行成功
   
create sequence "x3"  -- 执行成功

(实际上创建了一个名称为 "x3" 的sequence,也可以用 X3 来访问)

values Nextval for x3  --执行成功,值为 1

values prevval for X3  --执行成功,值为 1


create sequence Y3;  -- 执行成功,可以用 Y3 和 y3 或者 "Y3" 来访问
   
create sequence "Y3"  -- 执行失败 报已经存在错误

values Nextval for Y3 -- 执行成功,值为 1

values Nextval for y3 -- 执行成,值为 2


create sequence z3;   -- 执行成功
   
create sequence "z3"  -- 执行成功

(实际上创建了一个名称为 "z3" 的 sequence,注意是带引号的)

--values prevval for z3  -- 报错 因为还没有值所以报错

values Nextval for z3  -- 执行成功,值为 1

values Nextval for z3  -- 执行成功,值为 2

values Nextval for "z3"  -- 执行成功,值为 1

---------------------------------------------------------------

ORACLE sequence

create sequence x3;  -- 执行成功
   
create sequence "x3"  -- 执行成功

(说明在 oracle 中 创建 sequence 当引号中有小写字母的时候,带引号和不带引号是不一样的)

--select x3.prevval from dual -- 报错

--select X3.prevval from dual -- 报错

select x3.Nextval from dual  -- 执行成功 值为 1

select x3.Nextval from dual  -- 执行成功 值为 2

select X3.Nextval from dual  -- 执行成功 值为 3 实际上是 x3 这个 sequence

select "x3".nextval from dual  -- 执行成功 值为 1

select "x3".nextval from dual  -- 执行成功 值为 2

-------------------------------

create sequence Y3; -- 执行成功
   
create sequence "Y3" -- 执行失败,报错,提示已经存在,

(说明 oracle 中创建 sequence 如果是大写字母,跟创建带引号的是一样的。)

select Y3.nextval from dual  -- 执行成功 值为 1

select "Y3".nextval from dual  -- 执行成功 值为 2

-------------------------------

create sequence "A" -- ok

select "A".nextval from dual -- ok

select a.nextval from dual -- ok

select A.nextval from dual -- ok

select "A".nextval from dual -- ok

select "a".nextval from dual -- error

-------------------------------

create sequence "b" -- ok

select "b".nextval from dual -- ok

select b.nextval from dual -- error

select B.nextval from dual -- error

select "B".nextval from dual -- error

select "b".nextval from dual -- ok

-------------------------------

create sequence "a"

select a.nextval from dual --error

select A.nextval from dual --error

select "a".nextval from dual -- ok

select "A".nextval from dual -- error

-------------------------------

create sequence "B"

select b.nextval from dual -- ok

select B.nextval from dual -- ok

select "b".nextval from dual -- error

select "B".nextval from dual -- ok

drop sequence B --ok

drop sequence a --error

drop sequence "a" --ok

create sequence "B" -- ok

drop sequence b --ok

create sequence "B" -- ok

drop sequence "b" --error

drop sequence b -- ok

---------------------------------------------------------------
分享到:
评论

相关推荐

    Oracle、DB2、PostgreSQL之Sequence总结

    在Oracle中,创建Sequence的语法如下: ```sql CREATE SEQUENCE seq_test MINVALUE 10000 MAXVALUE 99999999999999999 START WITH 20000 INCREMENT BY 1 CACHE 20 CYCLE ORDER; ``` DB2的创建方式类似,但语法稍有...

    DB2数据库切换为oracle数据库经验教训总结(必看篇)

    在将DB2数据库切换到Oracle数据库的过程中,遇到的挑战和经验教训主要集中在以下几个方面: 1. 主键生成策略: 在DB2中,通常使用`Sequence`来生成主键,而Oracle同样支持Sequence,但其获取方式不同。DB2通过`...

    DB2 000-610.pdf

    在IBM DB2数据库中,创建数据库时可以指定页面大小。页面大小决定了数据库管理系统的I/O效率和内存使用量。例如,如果执行了"CREATEDATABASEtest"命令,该数据库的页面大小默认为4KB(选项A)。页面大小的其他选项是...

    oracle数据迁移到db2数据库的实现方法(分享)

    在 Oracle 中的索引可能需要在 DB2 中重新创建,并可能需要根据性能需求调整索引类型和顺序。 最后,数据库迁移是一个复杂的过程,涉及到大量的数据验证和测试。在迁移前应充分了解源和目标数据库的特性,制定详细...

    oracle数据库的功能

    ### Oracle数据库功能详解...通过以上内容可以看出,Oracle数据库提供了丰富的功能和支持,使得其在企业级应用中占据了重要的地位。无论是基本的数据管理操作还是高级的数据处理需求,Oracle都能提供强大的支持和服务。

    超详细Oracle教程

    ### 超详细Oracle教程知识点总结 #### 一、引言 - **Oracle与SUN合并背景**:2009年,Oracle...通过以上知识点的梳理,读者可以全面了解Oracle数据库的相关知识,为实际工作中的数据库管理和应用开发奠定坚实的基础。

    IBM DB2 日常维护汇总(六)

    创建序列的语法是`CREATESEQUENCE SEQUENCE_NAME STARTWITH START_NUMBER INCREMENTBY VALUE1 NOMAXVALUE NOCYCLE CACHE MAXIMUMNUMBEROFSEQUENCEVALUES`,可以设置起始值、增量、最大值限制、循环属性和缓存大小。...

    db2-703.doc

    别名是在 DB2 中为已有的表或视图提供的另一种名称,类似于 Oracle 中的同义词。它可以提高代码的可读性和可维护性。别名的创建和删除非常简单,如下所示: ```sql CREATE ALIAS aliastab1 FOR tab1; CREATE ALIAS ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    说明:Oracle中需要创建用户一定是要具有dba(数据库管理员)权限的用户才能创建,而且创建的新用户不具备任何权限,连登录都不可以。 用法:create user 新用户名 identified by 密码 例子: 2. 修改密码 说明:...

    数据库转换

    本篇主要讨论DB2 V9与Oracle之间的差异,以帮助理解和处理迁移过程中可能遇到的问题。 1. 函数使用: - **Substr() 和 InStr() 函数**:在DB2中,这两个函数用于计算字符串的子串和位置,它们的下标是从1开始的。...

    oracle的序列

    - **兼容性**:序列对象在Oracle和DB2等数据库中可用,但在MySQL和SQL Server等其他数据库系统中则没有提供直接的序列创建功能。 #### 二、序列的创建 创建序列的基本语法如下: ```sql CREATE SEQUENCE 序列名 ...

    oracle基础知识

    - **大型数据库**:如Oracle、DB2、Sybase等,这些数据库通常用于处理非常大的数据量和复杂的事务处理需求。 ##### 1.2 Oracle认证 Oracle提供了不同级别的认证来证明个人在Oracle技术领域的专业能力: - **OCA ...

    常用数据库的自增字段创建方法汇总

    本文将详细介绍几种主流数据库系统中的自增字段创建方法,包括 DB2、Oracle、MySQL、PostgreSQL、SQL Server 和 Sybase。 #### DB2 DB2 支持通过 `GENERATED ALWAYS AS IDENTITY` 属性来创建自增字段。这种方式...

    真实项目中关于主键生成方式的剖析(JPA)

    在Oracle和DB2等数据库中,用户可以自定义创建序列,这提供了更大的灵活性,如从特定数值开始自增。而在MySQL和Microsoft SQL Server等数据库中,系统会自动创建并管理自增主键,无需用户干预。 在Oracle中,创建...

    ID生成策略

    例如,在Oracle中可能会使用`Sequence`,而在MySQL和SQL Server中则使用`Identity`。这种方式使得应用程序无需关心底层数据库的具体实现细节,提高了可移植性。 在Hibernate映射文件中的配置如下: ```xml ```...

    Sql Server语句经典大全

    常见的 DBMS 有 MySQL、MSSQLServer、DB2、Oracle 等。不同的 DBMS 有其特点,但对于开发人员来说,大同小异。 基本术语 1. 创建数据库:使用 CREATE DATABASE 语句创建一个新的数据库。 2. 删除数据库:使用 DROP...

    DB2常用傻瓜问题1000问(三)

    概要表在DB2中类似于Oracle的实体化视图,用于存储预先计算或聚合的数据,提高查询效率。创建概要表的语法如下: ``` CREATE SUMMARY TABLE TABLE_NAME AS (FULL SELECT) ... ``` 例如: ``` CREATE SUMMARY ...

    openjpa实体标识的生成策略

    如果数据库支持序列(如Oracle和PostgreSQL),可以使用`strategy=GenerationType.SEQUENCE`。这时,需要配合`@SequenceGenerator`注解来指定序列名称。`@SequenceGenerator`注解的属性包括: - `name`:必需的属性...

Global site tag (gtag.js) - Google Analytics