没有合适的资源?快使用搜索试试~ 我知道了~
首页Oracle PLSQL语言基础
资源详情
资源评论
资源推荐

Oracle PL/SQL 语言基础
PL/SQL 是 ORACLE 对标准数据库语言的扩展,ORACLE 公司已经将 PL/SQL 整合到 ORACLE 服务器和其他工具中了
PL/SQL 是 ORACLE 对标准数据库语言的扩展,ORACLE 公司已经将 PL/SQL 整合到 ORACLE 服务器和其他工具中了,
近几年中更多的开发人员和 DBA 开始使用 PL/SQL,本文将讲述 PL/SQL 基础语法,结构和组件、以及如何设计并执行一个
PL/SQL 程序。
PL/SQL 的优点
从版本 6 开始 PL/SQL 就被可靠的整合到 ORACLE 中了,一旦掌握 PL/SQL 的优点以及其独有的数据管理的便利性,那么
你很难想象 ORACLE 缺了 PL/SQL 的情形。PL/SQL 不是一个独立的产品,他是一个整合到 ORACLE 服务器和 ORACLE 工具
中的技术,可以把 PL/SQL 看作 ORACLE 服务器内的一个引擎,sql 语句执行者处理单个的 sql 语句,PL/SQL 引擎处理 PL/
SQL 程序块。当 PL/SQL 程序块在 PL/SQL 引擎处理时,ORACLE 服务器中的 SQL 语句执行器处理 pl/sql 程序块中的 SQL 语
句。
PL/SQL 的优点如下:
. PL/SQL 是一种高性能的基于事务处理的语言,能运行在任何 ORACLE 环境中,支持所有数据处理命令。通过使
用 PL/SQL 程序单元处理 SQL 的数据定义和数据控制元素。
. PL/SQL 支持所有 SQL 数据类型和所有 SQL 函数,同时支持所有 ORACLE 对象类型
. PL/SQL 块可以被命名和存储在 ORACLE 服务器中,同时也能被其他的 PL/SQL 程序或 SQL 命令调用,任何客户/服务
器工具都能访问 PL/SQL 程序,具有很好的可重用性。
. 可以使用 ORACLE 数据工具管理存储在服务器中的 PL/SQL 程序的安全性。可以授权或撤销数据库其他用户访
问 PL/SQL 程序的能力。
. PL/SQL 代码可以使用任何 ASCII 文本编辑器编写,所以对任何 ORACLE 能够运行的操作系统都是非常便利的
. 对于 SQL,ORACLE 必须在同一时间处理每一条 SQL 语句,在网络环境下这就意味作每一个独立的调用都必须被
oracle 服务器处理,这就占用大量的服务器时间,同时导致网络拥挤。而 PL/SQL 是以整个语句块发给服务器,这就降低了网
络拥挤。
PL/SQL 块结构
PL/SQL 是一种块结构的语言,组成 PL/SQL 程序的单元是逻辑块,一个 PL/SQL 程序包含了一个或多个逻辑块,每个块
都可以划分为三个部分。与其他语言相同,变量在使用之前必须声明,PL/SQL 提供了独立的专门用于处理异常的部分,下面
描述了 PL/SQL 块的不同部分:
声明部分(Declaration section)
声明部分包含了变量和常量的数据类型和初始值。这个部分是由关键字 DECLARE 开始,如果不需要声明变量或常量,那

么可以忽略这一部分;需要说明的是游标的声明也在这一部分。
执行部分(Executable section)
执行部分是 PL/SQL 块中的指令部分,由关键字 BEGIN 开始,所有的可执行语句都放在这一部分,其他的 PL/SQL 块也可
以放在这一部分。
异常处理部分(Exception section)
这一部分是可选的,在这一部分中处理异常或错误,对异常处理的详细讨论我们在后面进行。
PL/SQL 块语法
[DECLARE]
---declaration statements
BEGIN
---executable statements
[EXCEPTION]
---exception statements
END
PL/SQL 块中的每一条语句都必须以分号结束,SQL 语句可以使多行的,但分号表示该语句的结束。一行中可以有多条
SQL 语句,他们之间以分号分隔。每一个 PL/SQL 块由 BEGIN 或 DECLARE 开始,以 END 结束。注释由--标示。
PL/SQL 块的命名和匿名
PL/SQL 程序块可以是一个命名的程序块也可以是一个匿名程序块。匿名程序块可以用在服务器端也可以用在客户端。
命名程序块可以出现在其他 PL/SQL 程序块的声明部分,这方面比较明显的是子程序,子程序可以在执行部分引用,也可
以在异常处理部分引用。
PL/SQL 程序块可背独立编译并存储在数据库中,任何与数据库相连接的应用程序都可以访问这些存储的 PL/SQL 程序
块。ORACLE 提供了四种类型的可存储的程序:
. 函数
. 过程
. 包
. 触发器
函数

函数是命名了的、存储在数据库中的 PL/SQL 程序块。函数接受零个或多个输入参数,有一
个返回值,返回值的数据类型在创建函数时定义。定义函数的语法如下:
FUNCTION name [{parameter[,parameter,...])] RETURN datatypes IS
[local declarations]
BEGIN
execute statements
[EXCEPTION
exception handlers]
END [name]
过程
存储过程是一个 PL/SQL 程序块,接受零个或多个参数作为输入(INPUT)或输出(OUTPUT)、
或既作输入又作输出(INOUT),与函数不同,存储过程没有返回值,存储过程不能由 SQL 语句直
接使用,只能通过 EXECUT 命令或 PL/SQL 程序块内部调用,定义存储过程的语法如下:
PROCEDURE name [(parameter[,parameter,...])] IS
[local declarations]
BEGIN
execute statements
[EXCEPTION
exception handlers ]
END [name]
包(package)
包其实就是被组合在一起的相关对象的集合,当包中任何函数或存储过程被调用,包就被加载入内存中,包中的任何函数
或存储过程的子程序访问速度将大大加快。
包由两个部分组成:规范和包主体(body),规范描述变量、常量、游标、和子程序,包体完全定义子程序和游标。
触发器(trigger)
触发器与一个表或数据库事件联系在一起的,当一个触发器事件发生时,定义在表上的触发器被触发。
变量和常量
变量存放在内存中以获得值,能被 PL/SQL 块引用。你可以把变量想象成一个可储藏东西的容器,容器内的东西是
可以改变的。
声明变量
变量一般都在 PL/SQL 块的声明部分声明,PL/SQL 是一种强壮的类型语言,这就是说在引用变量前必须首先声明,
剩余12页未读,继续阅读















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

评论3