没有合适的资源?快使用搜索试试~ 我知道了~
首页ORACLE_PLSQL编程详解
ORACLE_PLSQL编程详解 SQL语言只是访问、操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发。PL /SQL是一种高级数据库程序设计语言,该语言专门用于在各种环境下对ORACLE数据库进行访问。由于该语言集成于数据库服务器中,所以PL/SQL代码可以对数据进行快速高效的处理。除此之外,可以在ORACLE数据库的某些客户端工具中,使用PL/SQL语言也是该语言的一个特点。本章的主要内容是讨论引入PL/SQL语言的必要性和该语言的主要特点,以及了解PL/SQL语言的重要性和数据库版本问题。还要介绍一些贯穿全书的更详细的高级概念,并在本章的最后就我们在本书案例中使用的数据库表的若干约定做一说明。
资源详情
资源评论
资源推荐

ORACLE PL/SQL 编程详解
SQL 语言只是访问、操作数据库的语言,并不是一种具有流程控制的程序设计语言,
而只有程序设计语言才能用于应用软件的开发。 是一种高级数据库程序设计语言,
该语言专门用于在各种环境下对 数据库进行访问。由于该语言集成于数据库服务
器中,所以 代码可以对数据进行快速高效的处理。除此之外,可以在 数
据库的某些客户端工具中,使用 语言也是该语言的一个特点。本章的主要内容是
讨论引入 语言的必要性和该语言的主要特点,以及了解 语言的重要性和
数据库版本问题。还要介绍一些贯穿全书的更详细的高级概念,并在本章的最后就我们在
本书案例中使用的数据库表的若干约定做一说明。
1.1 SQL 与 PL/SQL
1.1.1 什么是 PL/SQL?
是 的缩写。
的 是支持 和 !
"标准的产品。 是对 语言存储过程语言的扩展。从
# 以后, 的 $%& 附带了 。它现在已经成为一种过程处理语
言,简称 。目前的 包括两部分,一部分是数据库引擎部分;另一部分是
可嵌入到许多产品(如 语言,'( 语言等)工具中的独立引擎。可以将这两部分称为:
数据库 和工具 。两者的编程非常相似。都具有编程结构、语法和逻辑机
制。工具 另外还增加了用于支持工具(如 ))的句法,如:在窗体
上设置按钮等。本章主要介绍数据库 内容。
1.2 PL/SQL 的优点或特征
1.2.1 有利于客户/服务器环境应用的运行
对于客户服务器环境来说,真正的瓶颈是网络上。无论网络多快,只要客户端与服务器进
行大量的数据交换。应用运行的效率自然就回受到影响。如果使用 进行编程,将
这种具有大量数据处理的应用放在服务器端来执行。自然就省去了数据在网上的传输时间。
1.2.2 适合于客户环境
由于分为数据库 部分和工具 。对于客户端来说, 可以嵌
套到相应的工具中,客户端程序可以执行本地包含 部分,也可以向服务发 命
令或激活服务器端的 程序运行。

1.2.3 过程化
是 Oracle 在标准 上的过程性扩展,不仅允许在 程序内嵌入 语
句,而且允许使用各种类型的条件分支语句和循环语句,可以多个应用程序之间共享其解
决方案。
1.2.4 模块化
程序结构是一种描述性很强、界限分明的块结构、嵌套块结构,被分成单独的过
程、函数、触发器,且可以把它们组合为程序包,提高程序的模块化能力。
1.2.5 运行错误的可处理性
使用 提供的异常处理(EXCEPTION),开发人员可集中处理各种 错误
和 错误,或处理系统错误与自定义错误,以增强应用程序的健壮性。
1.2.6 提供大量内置程序包
ORACLE 提供了大量的内置程序包。通过这些程序包能够实现 $% 的一些低层操作、高
级功能,不论对 $% 还是应用开发人员都具有重要作用。
当然还有其它的一些优点如:更好的性能、可移植性和兼容性、可维护性、易用性与
快速性等。
1.3 PL/SQL 可用的 SQL 语句
是 系统的核心语言,现在 的许多部件都是由 写成。
在 中可以使用的 语句有:
*,+$*,$*,*
*,&&*,%,,(*。
提示:在
PL/SQL
中只能用
SQL
语句中的
DML
部分,不能用
DDL
部分,如果要
在
PL/SQL
中使用
DDL(
如
CREATE table
等
)
的话,只能以动态的方式来使用。
的 组件在对 程序进行解释时,同时对在其所使用的表
名、列名及数据类型进行检查。
可以在 -+中使用。
可以在高级语言中使用。
可以在 的开发工具中使用(如:$./ 或
% 等。
其它开发工具也可以调用 编写的过程和函数,如 0%等都可以
调用服务器端的 过程。
1.4 运行 PL/SQL 程序
程序的运行是通过 中的一个引擎来进行的。这个引擎可能在
的服务器端,也可能在 应用开发的客户端。引擎执行 中的过
程性语句,然后将 语句发送给数据库服务器来执行。再将结果返回给执行端

2.1 PL/SQL 块
PL/SQL 程序由三个块组成,即声明部分、执行部分、异常处理部分。
PL/SQL 块的结构如下:
DECLARE
--声明部分: 在此声明 PL/SQL 用到的变量,类型及游标,以及局部的存储过程和函数
BEGIN
-- 执行部分: 过程及 SQL 语句 , 即程序的主要部分
EXCEPTION
-- 执行异常部分: 错误处理
END;
其中:执行部分不能省略。
PL/SQL 块可以分为三类:
12 无名块或匿名块(anonymous):动态构造,只能执行一次,可调用其它程序,但
不能被其它程序调用。
!2 命名块(named):是带有名称的匿名块,这个名称就是标签。
32 子程序(subprogram):存储在数据库中的存储过程、函数等。当在数据库上建立
好后可以在其它程序中调用它们。
42 触发器 (Trigger):当数据库发生操作时,会触发一些事件,从而自动执行相应的
程序。
52 程序包(package):存储在数据库中的一组子程序、变量定义。在包中的子程序可
以被其它程序包或子程序调用。但如果声明的是局部子程序,则只能在定义该局部子
程序的块中调用该局部子程序。
2.2 PL/SQL 结构
块中可以包含子块;

子块可以位于 中的任何部分;
子块也即 中的一条命令;
2.3 标识符
程序设计中的标识符定义与 的标识符定义的要求相同。要求和限制有:
标识符名不能超过 36 字符;
第一个字符必须为字母;
不分大小写;
不能用’78减号9
不能是 保留字。
提示
:
一般不要把变量名声明与表中字段名完全一样
,
如果这样可能得到不正确的结果
.
:
例如:下面的例子将会删除所有的纪录,而不是’;<的记录;
DECLARE
enamevarchar2(20):='EricHu';
BEGIN
DELETEFROMsco$.empWHEREename=ename;
END;
变量命名在 中有特别的讲究,建议在系统的设计阶段就要求所有编程人员共同
遵守一定的要求,使得整个系统的文档在规范上达到要求。下面是建议的命名方法:
标识符 命名规则 例子
程序变量
(= (=
程序常量
= =/=
游标变量
= =/
异常标识
= ==
表类型
=>=/ /==/
表
=> /
记录类型
= /=
-替代变量
= =
绑定变量
?= ?==

2.4 PL/SQL 变量类型
在前面的介绍中,有系统的数据类型,也可以自定义数据类型。下表给出
类型和 中的变量类型的合法使用列表:
2.4.1 变量类型
在 @ 中可以使用的变量类型有:
类型 子类 说 明 范 围
ORACLE
限制
; A
0
A
定长字符串
民族语言字符集
63!B#B
可选C确省D1
!666
(;! (AC
(;!
可变字符串
民族语言字符集
63!B#B
4666
4666
%E=*
?
带符号整数C为整数计算优
化性能
+&%/C $
$>
/
小数C+&%的子类型
高精度实数
整数C+&%的子类型
整数C+&%的子类型
与 +&% 等价
与 +&% 等价
整数C比 小
剩余63页未读,继续阅读















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0