- 1、本文档共73页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
11编程进阶PLSQL
第十一章
编程进阶——PL/SQL ;学习目标:;11.1 PL/SQL程序结构 ;11.1 PL/SQL程序结构 ;表中的sysdate为系统时间函数;dbms_output为系统默认的程序包,put_line为包中定义的方法,功能是输出信息;在Oracle中,所有对数据库数据的更改并没有直接操作数据库,而是放在叫工作区的内存里,只有在commit语句执行后,才发生永久更改。 ;PL/SQL程序的总体结构 ;11.2 基本语法要素 ;11.2 基本语法要素 ;11.2 基本语法要素 ;记录类型的定义:;使用记录变量更新数据库表:;3. 使用%rowtype定义变量 ;4. 定义一维表类型变量 ;5. 定义多维表类型变量 ;11.2.4 表达式 ;2. 字符表达式
字符表达式由字符型常数、变量、函数和字符运算符组成,唯一可以使用的字符运算符就是连接运算符“||”。
3. 关系表达式
关系表达式由字符表达式或数值表达式与关系运算符组成,可以使用的关系运算符包括以下4种。
小于
大于
= 等于(不是赋值运算符:=)
like 类似于
in 在……之中
= 小于等于
= 大于等于
!= 不等于
between 在……之间 ;4. 逻辑表达式
逻辑表达式由逻辑常数、变量、函数和逻辑运算符组成,常见的逻辑运算符包括以下3种。
?NOT:逻辑非
?OR:逻辑或
?AND:逻辑与
运算的优先次序为NOT、AND和OR。 ;在控制台中输入日期字段:;11.3 流程控制 ;3. if嵌套条件控制 ;11.3.2 循环控制 ;3. while..loop..end loop循环控制 ;11.4 事务处理 ;11.4.2 rollback命令 ;练习一:记录变量的使用;11.5 异常处理 ;11.5.2 自定义异常处理 ;11.6 游标 ;11.6.2 打开游标
;记住:一个fetch语句一次只能取得一条记录,第一个fetch语句获得的是第一行记录,第二个fetch语句得到的是第二行记录,依此类推。可以通过使用循环来获取多条记录。
;11.6.4 关闭游标 ;2. %found属性 ;4. %rowcount属性 ;步骤:
1、定义游标,定义student表记录变量;
2、打开游标;
3、循环读取游标中的行记录,并在每次循环中判断记录的name字段是否为胡青牛或丁敏君,如果是则修改该记录的professional字段;更改student表中学生胡青牛或丁敏君的记录为刚才修改的记录;
4、结束循环;
5、提交修改并关闭游标。;;与游标类似,游标变量也是指向多行查询的结果集的当前行。游标与游标变量的不同,就像常量和变量之间的关系一样。游标是静态的,要与某个具体的查询相关联,而且在运行时不能被改变;而游标变量是动态的,它并不与指特定的查询绑定在一起。可以根据不同的运行条件指向不同的查询工作区,从而提高更好的灵活性。而且,可以将新的值赋予游标变量,将它作为参数传递给本地和存储过程。如果把游标看作指向查询记录集的指针,游标变量就可以看作是保存游标指针的变量,可以动态指定变量所包含的游标。由于游标变量的类型是对游标指针的引用类型,因此,定义游标变量前要先定义对游标指针的引用类型,即REF CURSOR类型,然后声明这种类型的游标变量。
1、游标指针引用类型的定义:
TYPE ref_type_name
IS
REF CURSOR [RETURN return_type];
;在Oracle 9i之前,要使用游标变量,需要执行以下两步:
(1)定义一个REF CURSOR类型;
(2)定义这种类型的游标变量。
Oracle 9i提供了SYS_REFCURSOR通用的弱游标类型,使得定义弱游标类型变量只要一步:
v_rc SYS_REFCURSOR;
后面还会讲到使用游标变量从存储过程和函数返回结果集。;11.7 过程 ;12.7.2 查询过程
;11.7.4 执行过程 ;;使用带参数的过程 ;过程的创建和使用练习:;11.8 包 ;11.8 包 ;11.8 包 ;11.8 包 ;;11.9 存储函数 ;注意:函数主体内的return语句是必须定义的,函数通过它向调用环境返回 一个值。在函数体内可以有多个Return子句,只要遇到return子句,函数的执行就会停止,并将控制返回到调用环境。
;在SQL语句中使用存储函数:;使用游标变量返回结果集:;使用游标变量返回结果集函数定义的变化( sys_refcursor 通用弱类型与自定义的ref cursor 弱类型兼容:
; 触发器类似于过程或函数,因为它们
文档评论(0)