第9章 序列、同义词、程序包.docVIP

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章 序列、同义词、程序包

序列、同义词、程序包 学习目标: 了解序列、同义词、同义词的概念。 掌握序列的定义及应用方法。 掌握同义词的定义及应用方法。 掌握程序包在程序设计中的应用方法。 序列 序列(Sequence)是可以是被多个用户使用的用于产生一系列唯一数字的数据库对象,序列定义存储在数据字典中。序列通过提供唯一数值的顺序表用于简化程序设计工作。当一个序列第一次被查询调用时,它将返回一个预定值。在随后的每一次查询中,序列将产生一个按其指定的增量增长的值。 创建序列 创建序列 创建序列是使用CREATE SEQUENCE命令完成的。如果要在当前方案中建立序列,用户必须具有CREATE SEQUENCE系统权限;如果要在其他方案中建立序列,要求用户必须具有CREATE ANY SEQUENCE系统权限。建立序列的基本语法如下: CREATE SEQUENCE[schema.]sequence_name [INCREMENT BY integer] [START WITH integer] [MAXVALUE integer|NOMAXVALUE] [MINVALUE integer|NOMINVALUE] [CYCLE|NOCYCLE] [CACHE integer |NOCACHE] [ORDER|NOORDER]; 其中: [INCREMENT BY integer]:指定序列以integer递增,如果不指定integer,使用默认值1。 [START WITH integer]:序列的起始值为integer。若不指定该值,对升序序列将使用该序列默认的最小值。对降序序列,将使用该序列默认的最大值。 [MAXVALUE integer| NOMAXVALUE]:设置最大值integer或不设置最大值。 [MINVALUE integer| NOMINVALUE]:设置最小值integer或不设置最小值。 [CYCLE| NOCYCLE]:当达到最大值时循环或不循环。 [CACHE integer | NOCACHE]:预分配缓存大小,默认为20。 [ORDER| NOORDER]:默认情况下是NOORDER,这两个参数控制序列是否按照顺序生成。只有在RAC环境中,这两个参数才有实际意义。 【例9.1】建立序列“seq_1”。代码如下: CREATE SEQUENCE seq_1 START WITH 50 INCREMENT BY 10 MAXVALUE 99 CACHE 10; 执行了以上语句后,会建立序列seq_1。序列seq_1的第一个序列号50,序列增量为10,因为指定其最大值为99,所以将来要生成的序列号顺序为50、60、70、80、90。 虚表和伪列 虚表DUAL)主要是为保证在使用SELECT语句中的语句的完整性而提供的。DUA表是Oracle中的一个实际存在的表,常用在没有目标表的SELECT中。DUA表由Oracle连同数据字典一同创建,所有的用户都可以访问该表。这个表只有一列DUMMY,该列定义为VARCHAR2(1)类型,有一行值X。racle系统为了实现完整的关系数据库功能,专门提供了一组伪列,这些列不是在建立对象时由我们完成的,而是由Oracle完成的。Oracle有以下伪列:CURRVAL AND NEXTVAL 使用序列号的保留字LEVEL 查询数据所对应的级ROWID 记录的唯一标识ROWNUM 限制查询结果集的数量1)利用NEXTVAL伪列添加数据,格式如下: INSERT INTO 方案名.表名 VALUES(SYSTEM.序列名.NEXTVAL, , ,…) COMMIT; (2)利用虚表DUAL访问序列的值,格式如下: SELECT 方案名.序列名.NEXTVAL FROM DUAL; SELECT 方案名.序列名.CURRVAL FROM DUAL; 修改序列 修改序列是使用ALTER SEQUENCE命令完成的。数据库用户可以直接修改其自身方案的序列,如果要修改其它方案的序列,则要求该用户必须具有ALTER ANY SEQUENCE系统的权限。需要注意,START WITH选项不能被修改。修改序列基本语法如下: ALTER SEQUENCE[schema.]sequence_name [INCREMENT BY integer] /*递增或递减值*/ [MAXVALUE integer | NOMAXVALUE] /*最大值*/ [MINVALUE integer | NOMINVALUE] /*最小值*/ [CYCLE | NOCYCLE] /*是否循环*/ [CACHE int

文档评论(0)

5201314118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065201001000004

1亿VIP精品文档

相关文档