ImageVerifierCode 换一换
格式:DOC , 页数:6 ,大小:43KB ,
资源ID:8974963      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/8974963.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(Oracle创建序列的方法及技巧.doc)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

Oracle创建序列的方法及技巧.doc

1、Oracle创建序列的方法及技巧 日期:2008-06-23]   来源:互联网整理  前面说过,关系数据库的一个最重要的方面是,每个表必须有一个主键。许多情况下,在数据库中创建一个作为标识符的新键列是最容易的。例如,Agents表有一个作为主键的AgentID列。但是,总是存在一个问题:从何处取得保证唯一的新编号?在一个较大的组织机构中,可能有一个人力资源部,可以建立某种处理,以便新雇员总能分配一个唯一的编号,并且在雇用某人时该数据被录入到表中。但必须有人密切关注所分配的所有编号,并且还需要检验它们唯一性的一个表单。 相对于依赖基于人工的处理,让数据库生成用作键值的编号更有意义。ora

2、cle为此目的使用序列。序列(sequence)是Oracle在需要时用来产生新值的一个编号集合。序列的两个关键点是:必须预先建立;需要代码请求生成新值。序列的编号不是在录入新行时自动生成的。你必须编写代码来生成值,并把它们存储在合适的列中。注意,可以对要自动生成编号的表的Insert事件编写一个数据库触发器。但是,Oracle中最常见的方法是在需要时生成关键值,通常是在表单上生成。 一般,在定义原始表时定义一个序列。但是,因为序列与表之间不存在直接的关系,所以可以在创建编号前建立序列。序列只需创建一次,在整个SQL*Plus中都可以使用。 (1) 因为表中已经存在数据,找出其最大值:

3、SELECT Max(AgentID) FROM Agents; (2) 最大值应该为15521,你可能想从一个比它大的值开始。用15522就可以了,但为保险起见,从20000开始: CREATE SEQUENCE seq_Agents INCREMENT BY 1 START WITH 20000; (3) 也是用SQL检索新值,它自动用序列定义中指定的值给计数器增量。试一下,以保证理解相应的命令: SELECT seq_Agents.NEXTVAL FROM dual; 此命令使用了人为的dual表,因为PL/SQL总是要求使用FROM子句。它应该返回值20000。如果重复此

4、命令,它将返回20001、20002,如此等等。注意,序列简单地返回数字,不对这些数字做任何事情。由你决定使用这些数字作为新主键值。实际上,你可以将这些数字用于任何用途,但应该将一个序列仅用于一个用途。而且,还应该仔细地命名序列,以便别人能够理解其用途。 在创建序列之后,需要给表单添加代码,以便在添加一个新代理时自动生成一个新值。启动Forms Builder并打开Agents表单。应该打开第8章中创建的表单版本,复制第8章中建立的Agents.fmb和Agents.fmx文件,把它们放置到本章的文件夹中。如果没有第8章中创建的版本,可使用本章创建的简单版本。 第1步照常是确定使用何种触发

5、器事件。初看起来,使用On-Insert触发器很吸引人,但该事件在处理过程中有点迟缓。记住,在用户使用表单时,他们单击Insert Record选项创建一个空白页。这个活动触发When-Create-Record事件。On-Insert事件在用户单击Save按钮后才触发。 (1) 对表单的When-Create-Record事件创建一个新触发器。 (2) 使用主菜单上的File/Connect并登录数据库。 (3) 添加代码为Agents生成一个新序列编码: SELECT seq_Agents.NEXTVAL INTO :AGENTS.AGENTID FROM dual; (4) 单

6、击Compile按钮,以保证没有输入错误或语法错误。 提示     如果你接收到一条有关dual表的错误消息,很可能是因为没有连接到数据库。 (5) 启动表单以保证生成一个新ID。 图9-15示出打开时的Agents表单。When-Create-Record事件在表单第1次打开时触发。因此,每当用户运行此表单,都将生成一个新的ID值。如果用户不打算输入新代理,单击Execute Query按钮将对已有代理装载表单。所生成的ID值将被抛弃。因为数据库可生成十亿以上的编号,丢掉几个不会产生问题。但是,如果你有一个预期用户很少增加新条目的表单,可以改进此表单的效率。添加Execute_Quer

7、y语句到When-New-Form-Instance触发器。此动作对用户隐藏初始的空白表单,但仍然会产生额外的序列值。 oracle数据库PL/SQL序列(组图) 资料引用: 序列是Oracle 9i提供的用于按照设定的规则自动产生数据的方案对象。在某些数据表的结构中,有些字段需要这种特性。比如,对于某个学生数据表的学号要害字段,用户可以希望在录入数据时,能够自动在上一个记录的学号字段上自动加1等。由于Oracle 9i提供的16种基本数据类型并没有这样的功能,可以通过序列方案对象来实现。      序列的创建      下面介绍在【企业治理器】中

8、如何创建序列。   (1)在【企业治理器】中选择【myoracle.mynet】/【方案】/【序列】选项,单击鼠标右键,在出现的快捷菜单里选择【创建】选项,如图9.48所示。        (2)出现如图9.49所示的创建序列的【一般信息】选项卡。      在【名称】文本框里输入待定义的序列的名称“TEMPSEQUENCE”。      在【方案】下拉列表框里选择序列所属的用户名“SCOTT”。      序列【类型】参数有两个选项。若选择【升序】单选钮,则表示将创建从初始值向最大值递增的序列,这是创建序列时的默认设置;若选择【降序】单选钮,则表示将创建从初始值向最

9、小值递减的序列。      对【值】可以进行设置的参数如下。      在【最小值】文本框里设置序列答应的最小值。创建序列时该字段最初为空。假如单击【创建】按钮时该字段为空,则对升序序列使用默认值 1,而对降序序列使用默认值 -1026。      在【最大值】文本框里设置序列答应的最大值。创建序列时该字段最初为空。假如单击【创建】按钮后该字段为空,则将对升序序列使用默认值 1027,而对降序序列使用默认值-1。      在【时间间隔】文本框里设置递增序列递增的间隔数值(升序序列)或递减序列递减的间隔数值(降序序列)。创建序列时该字段最初为空,假如单击【创建】按钮后该字段为空

10、将使用默认值1,该字段只能为正整数。      在【初始值】文本框里设置序列的起始值。假如单击【创建】按钮后该字段为空,对升序序列将使用该序列默认的最小值,对降序序列将使用该序列默认的最大值。      对【选项】可以设置的参数如下。      若选择【循环值】复选框,则表示指定在达到序列最小值或最大值之后,序列应继续生成值。对升序序列来说,在达到最大值后将生成最小值。对降序序列来说,在达到最小值后将生成最大值。假如未选择该复选框,序列将在达到最小值或最大值后停止生成任何值。默认情况下是未选择状态。      若选择【排序值】复选框,则指定序列号要按请求次序生成,默认情况下是

11、未选择状态。      在【高速缓存】中设置由数据库预分配并存储的值的数目参数。若选择【默认值】单选钮,则表示将设置默认值为 20,默认情况下选择此选项;若选择【无高速缓存】单选钮,则表示指定不预分配序列值;若选择【大小】单选钮,则表示在文本框里输入可接受的值,最小值为2,对循环序列来说,该值必须小于循环中值的个数。假如序列能够生成的值数的上限小于高速缓存大小,则高速缓存大小将自动改换为该上限数。      完成设置后单击【创建】按钮。      (3)成功创建序列后,出现如图9.50所示界面。单击“确定”按钮。        (3)读者也可以在【SQLPlus Work

12、sheet】中执行下列SQL程序创建序列。   ―――――――――――――――――――――――――――――――――――――   CREATE SEQUENCE "SCOTT"."TEMPSEQUENCE"   INCREMENT BY 1 START WITH 1   MAXVALUE 1.0E28 MINVALUE 1   NOCYCLE CACHE 20 NOORDER   ―――――――――――――――――――――――――――――――――――――   【配套程序位置】:第9章\ createsequence.sql。      序列的使用      下面介绍在向数据

13、表中插入数据时如何使用序列。      (1)首先为实例建立一个数据表“SCOTT.SEQUENCE_TABLE”,为简化起见,该数据表仅包含一个类型为“NUMBER”的数据列“NO”。      在如图9.51所示的创建表的【一般信息】选项卡中进行如下设置。      在【名称】文本框中输入“SEQUENCE_TABLE”。      在【方案】下拉列表框中选择“SCOTT”。      在【表空间】下拉列表框中选择“USERS”。      在【名称】单元格中输入“NO”,在【数据类型】下拉列表框单元格中选择“NUMBER”。      完成设置后单击【创建】按

14、钮。        (2)读者也可以在【SQLPlus Worksheet】中执行下列SQL代码创建数据表“SCOTT.SEQUENCE_TABLE”。   ―――――――――――――――――――――――――――――――――――――   CREATE TABLE "SCOTT"."SEQUENCE_TABLE" ("NO" NUMBER(10) NOT NULL)   TABLESPACE "USERS"   ―――――――――――――――――――――――――――――――――――――   【配套程序位置】:第9章\ createsequencetable.sql。  

15、    (3)在插入新的记录时,使用刚创建的“TEMPSEQUENCE”序列来自动产生“NO”数据列的值。在【SQLPlus Worksheet】里执行下面的SQL代码,执行的结果如图9.52所示。   ―――――――――――――――――――――――――――――――――――――   INSERT INTO SCOTT.SEQUENCE_TABLE(NO)   VALUES(SCOTT.TEMPSEQUENCE.NEXTVAL);   ―――――――――――――――――――――――――――――――――――――   【配套程序位置】:第9章\ insertsequencetable.s

16、ql。      “SCOTT.TEMPSEQUENCE.NEXTVAL”表分配下一个惟一的、可用的序列号。   执行“SCOTT.TEMPSEQUENCE.NEXTVAL”后,可以使用“SCOTT.TEMPSEQUENCE. CURRVAL”来标识上一个已经存储的序列值。   (4)在【SQLPlus Worksheet】中可以执行查询数据表“SCOTT.SEQUENCE_TABLE”数据的语句。执行结果如图9.53所示,表明序列“SCOTT.SEQUENCE”产生的值已经成功录入数据表中。   ―――――――――――――――――――――――――――――――――――――   select * from scott.sequence_table;   ―――――――――――――――――――――――――――――――――――――   【配套程序位置】:第9章\ selectsequencetable.sql。      点击查看大图   序列的删除      下面介绍在【企业治理器】中如何删除序列。      (1)在创建好的序列“SEQUENCE1”上用单击鼠标右键,在出现的快捷菜单里选择【移去】选项,如图9.54所示。        (2)出现如图9.55所示的【删除序列确认】界面,单击【是】按钮。    资料引用:

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服