没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
是 对标准数据库语言的扩展, 公司已经将 整合到 服
务器和其他工具中了,近几年中更多的开发人员和 开始使用 ,本文将讲述 基
础语法,结构和组件、以及如何设计并执行一个 程序。
PL/SQL 的优点
从版本 开始 就被可靠的整合到 中了,一旦掌握 的优点以及其独有
的数据管理的便利性,那么你很难想象 缺了 的情形。不是一个独立的产
品,他是一个整合到 服务器和 工具中的技术,可以把 看作 服
务器内的一个引擎, 语句执行者处理单个的 语句, 引擎处理 程序块。当
程序块在 引擎处理时, 服务器中的 语句执行器处理 程序块中
的 语句。
PL/SQL 的优点如下:
是一种高性能的基于事务处理的语言,能运行在任何 环境中,支持所有数
据处理命令。通过使用 程序单元处理 的数据定义和数据控制元素。
支持所有 数据类型和所有 函数,同时支持所有 对象类型
块可以被命名和存储在 服务器中,同时也能被其他的 程序或
命令调用,任何客户服务器工具都能访问 程序,具有很好的可重用性。
可以使用 数据工具管理存储在服务器中的 程序的安全性。可以授权或撤销
数据库其他用户访问 程序的能力。
代码可以使用任何 文本编辑器编写,所以对任何 能够运行的操作系
统都是非常便利的
对于 , 必须在同一时间处理每一条 语句,在网络环境下这就意味作每一个
独立的调用都必须被 服务器处理,这就占用大量的服务器时间,同时导致网络拥挤。而
是以整个语句块发给服务器,这就降低了网络拥挤。
PL/SQL 块结构
是一种块结构的语言,组成 程序的单元是逻辑块,一个 程序包含了一
个或多个逻辑块,每个块都可以划分为三个部分。与其他语言相同,变量在使用之前必须声明,
提供了独立的专门用于处理异常的部分,下面描述了 块的不同部分:
声明部分(Declaration section)
声明部分包含了变量和常量的数据类型和初始值。这个部分是由关键字 开始,如果
不需要声明变量或常量,那么可以忽略这一部分;需要说明的是游标的声明也在这一部分。
执行部分(Executable section)
执行部分是 块中的指令部分,由关键字 开始,所有的可执行语句都放在这一部
分,其他的 块也可以放在这一部分。
异常处理部分(Exception section)
这一部分是可选的,在这一部分中处理异常或错误,对异常处理的详细讨论我们在后面进行。
PL/SQL 块语法
!" #"
$% & #"
'(
$ !" #"
块中的每一条语句都必须以分号结束, 语句可以使多行的,但分号表示该语句的
结束。一行中可以有多条 语句,他们之间以分号分隔。每一个 块由 或
开始,以 结束。注释由标示。
PL/SQL 块的命名和匿名
程序块可以是一个命名的程序块也可以是一个匿名程序块。匿名程序块可以用在服务器
端也可以用在客户端。
命名程序块可以出现在其他 程序块的声明部分,这方面比较明显的是子程序,子程序
可以在执行部分引用,也可以在异常处理部分引用。
程序块可背独立编译并存储在数据库中,任何与数据库相连接的应用程序都可以访问这
些存储的 程序块。 提供了四种类型的可存储的程序:
函数
过程
包
触发器
函数
函数是命名了的、存储在数据库中的 程序块。函数接受零个或多个输入参数,有一个
返回值,返回值的数据类型在创建函数时定义。定义函数的语法如下:
)*("#+# ,# ,-(* .
!"
$% #"
'(
$ !"/"
"#
过程
存储过程是一个 程序块,接受零个或多个参数作为输入0*(-或输出0*(*(-、或
既作输入又作输出0*(-,与函数不同,存储过程没有返回值,存储过程不能由 语句直接使
用,只能通过 '*( 命令或 程序块内部调用,定义存储过程的语法如下:
*"#0# ,# ,-
!"
$% #"
'(
$ !"/"
"#
包(package)
包其实就是被组合在一起的相关对象的集合,当包中任何函数或存储过程被调用,包就被加载
入内存中,包中的任何函数或存储过程的子程序访问速度将大大加快。
包由两个部分组成:规范和包主体0&.-,规范描述变量、常量、游标、和子程序,包体完全定义子
程序和游标。
触发器(trigger)
触发器与一个表或数据库事件联系在一起的,当一个触发器事件发生时,定义在表上的触发器
被触发。变量和常量
变量存放在内存中以获得值,能被 块引用。你可以把变量想象成一个可储藏东西的容
器,容器内的东西是可以改变的。
声明变量
变量一般都在 块的声明部分声明, 是一种强壮的类型语言,这就是说在引用变
量前必须首先声明,要在执行或异常处理部分使用变量,那么变量必须首先在声明部分进行声明。
声明变量的语法如下:
1!&2"#(( &. (*345)*($!"
注意3可以在声明变量的同时给变量强制性的加上 (* 约束条件,此时变量在初始化时必
须赋值。
给变量赋值
给变量赋值有两种方式:
直接给变量赋值
'346778
949:0';67-8
通过 ((或 )(<( 给变量赋值
(*=09-,*=09;7>-
(((29,((2==
)==9
?<(4>78
常量
常量与变量相似,但常量的值在程序内部不能改变,常量的值在定义时赋予,,他的声明方式
与变量相似,但必须包括关键字 ((。常量和变量都可被定义为 和用户定义的数据类
型。
@21*((*=3478
这个语句定了一个名叫 @21*、数据类型是 *=、值为 7 的常量。
标量0-数据类型
标量0-数据类型没有内部组件,他们大致可分为以下四类:
"%#&
/
!#
&"
表 > 显示了数字数据类型;表 6 显示了字符数据类型;表 A 显示了日期和布尔数据类型。
表 >(.3%#!
. "B %& . ! !"
92( 6>CDCE6>CDCEACD (*
(*
(1
(1
(9
用于存储单字节整数。
要求存储长度低于 *= 值。
用于限制范围的子类型0*(9-3
(*3用于非负数
(13只用于正数
(*3只用于非负数和非 * 值
(13只用于正数,不能用于 * 值
(93只有值3>、7 或 >
*= >7>A7FFF>6G
=
*
)(
(
(
*=
=(
存储数字值,包括整数和浮点数。可以选择精度和刻度
方式,语法:
"%#&(,)。
缺省的精度是 AE, 是 7
2( 6>CDCEACD6>CDCEACD H
与 92( 基本相同,但采用机器运算
时,2( 提供更好的性能 。
表 6字符数据类型
. "B %& . ! !"
<
最大长度 A6DD 字
节
<(
存储定长字符串,如果长度没有确定,缺省是 >
最大长度
6>CDCEACD 字节
H
存储可变长度字符串
?
最大长度 A6DD 字
节
H
用于存储二进制数据和字节字符串,当在两个数据库之间进行
传递时,? 数据不在字符集之间进行转换。
?
最大长度
6>CDCEACD
H
与 数据类型相似,同样他也不能在字符集之间进行转
换。
?
>E 个字节
H
与数据库 ? 伪列类型相同,能够存储一个行标示符,可
以将行标示符看作数据库中每一行的唯一键值。
1<6
最大长度 A6DD 字
节
(1<
与 1< 数据类型相似,存储可变长度的字符串。声明方
法与 1< 相同
剩余63页未读,继续阅读
资源评论
cailibin
- 粉丝: 4
- 资源: 7017
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功