- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章 PLSQL的
Oracle数据库实用教程
(第二版);第9章 PL/SQL;PL/SQL为Oracle数据库提供的过程化编程语言
PL/SQL可用于分组SQL语句,将它们一起发向服务器,减少网络传输,提高程序运行效率
PL/SQL具有良好的可移植性,可运行于任何有Oracle Server的地方。
PL/SQL提供了完善的程序控制结构,可以实现复杂、功能强大的应用程序
PL/SQL集成于Oracle Server与Oracle 应用开发工具之中,可方便地实现分布式计算;一段完整的PL/SQL程序块结构
DECLARE
说明部分;
BEGIN
执行部分;
EXCEPTION
例外处理部分;
END;;当执行部分发生一个错误时,将会引起一个例外
例外发生后,正常的执行被停止并且转移到例外程序处理
例外处理完成后,将结束对应PL/SQL块的执行; PL/SQL中标识符以字母开头,后面可以是字母、数字、$、下划线和#; IN运算要求集合元素用圆括号括起来
x in (男,女); PL/SQL中运算???的优先级;在PL/SQL程序中使用的变量
PL/SQL变量
非PL/SQL变量;部分常用 PL/SQL标量数据类型;PL/SQL中的变量和常量必须先定义然后才能使用;PL/SQL没有输入和输出能力,需借助
DBMS_OUTPUT包
非PL/SQL变量;绑定变量
使用VARIABLE定义
使用PRINT语句输出绑定变量的值
在PL/SQL块中使用绑定变量方法
:绑定变量名;标识符命名规范;标号
用于标识一个程序块,形为
标号标识符;出错报告函数 (用于PL/SQL块的例外处理部分)
SQLCODE:返回最近例外的错误码
SQLERRM:返回与SQLCODE返回错误码相对应的错误信息
不可以在SQL语句中直接使用这两个函数
先用变量接收它们的返回值
通过变量来使用它们的值
一般情况下,应该建立一个错误信息日志表,记载在系统运行中发生的错误信息;出错报告函数使用示例;PL/SQL编程指导原则
(1) 使用注释文档化代码
(2) 遵循代码字符大小写规范
(3) 遵循命名规范
(4) 使用缩进增强程序的可读性
(5) 适当换行,分行书写语句;%TYPE类型描述符
简化变量的定义
自动保持某些变量在数据类型上的一致性
减少程序维护工作
使用如下形式定义变量
表名.列名%TYPE
已定义的变量或常量名%TYPE
取数据表中某列的类型或已定义的某些数据对象的类型作为新常量或变量的类型;记录类型
记录类型用于表示逻辑相关的一组信息;TABLE类型
也称为索引表,表中元素属于同一种类型
表中元素个数没有限制
表类型定义语法
TYPE table_type_name IS TABLE OF 基类型
INDEX BY BINARY_INTEGER;
用下标区分表类型变量中的每一个元素
表类型变量(下标);数组类型(VARRAY)
VARRAY中的元素个数是有限制的
下标不能取负数,从1开始
定义VARRAY类型语法
TYPE varray_type_name IS VARRAY(元素个数) OF 基类型;
访问VARRAY类型数组变量的元素
varray类型变量(下标);集合(Collection)
TABLE类型
NESTED TABLE类型
VARRAY类型;PL/SQL程序的几种形式
(1) 无名块
(2) 存储过程/函数
(3) 包
(4) 数据库触发器
(5) Oracle Forms Builder等开发工具中的过程/函数
(6) Oracle Forms Builder等开发工具中的触发器;从数据库中查询/提取出数据,并赋值给相关变量
SELECT INTO语法
SELECT [{DISTINCT | ALL}] {* | select_item [, select_item]...}
INTO {variable_name [, variable_name]...| record_name}
FROM {table_reference | [THE] (subquery)} [alias]
[, {table_reference | [THE] (subquery)} [alias]]...
rest_of_statement [rest_of_statement]...;
SELECT INTO语句应仅返回一条记录,否则引起系统预定义的例外TOO_MANY_ROWS;分支语句IF;循环控制语句;EXIT语句用于退出当前循环;游标是为处理SQL语句而分配的一个私有SQL工作区,用于管理SQL语句返回的记录
Oracle服务器用游标来命名每一个SQL工作区
游标分为两类
隐式游标对应于DML语句和
您可能关注的文档
最近下载
- 机动车辆租赁合同.docx VIP
- 形势与政策论文1500(通用3篇).docx VIP
- 2025年教科版(2024)小学科学三年级上册(全册)教学设计(附目录P171).docx
- T∕CECS G:T34-2023 寒区公路隧道设计标准.pdf
- 2014普通铁路质量控制标准和要求.doc VIP
- 2025年新人教版7年级道德与法治上册全册课件.pptx
- 第一单元+第2课《缤纷的世界美术流派》-2025-2026学年人美版(2024)美术新教材八年级上册.pptx VIP
- 江苏省泰州市区县街道社区乡镇村名称统计.pdf VIP
- 行政管理学题库答案.pdf VIP
- 学校食堂采购水果供应协议书.doc VIP
文档评论(0)