块是PL/SQL的基本程序单元,编写PL/SLQ程序其实就是编写PL/SQL块。完成简单的功能也许只需要编写一个块,复杂的可能需要在一个块中嵌套多个块。
1.块结构
DECLARE
/**
定义部分–定义常量,变量,复杂数据结构,游标,例解
**/
BEGIN
/**
执行部分–PL/SQL语句和SQL语句
**/
EXCEPTION
/**
异常处理–处理运行错误
**/
END;
/**
结束标志–注意此处带有分号
**/
2.块分类
1)匿名块
匿名块指的是没有名称的块,该类块直接以DECLARE开始,没有给出任何名称。
2)命名块
是指具有特定名称的块,该类块一般在块前使用<<块名>>,使用该种块是为了区分多级嵌套层次关系。
3)子程序
子程序包括过程,函数,包。开发子程序时,既可以为客户端开发,也可为服务端开发子程序。
过程
- 说明:过程用于执行特定操作,可以使用IN指定输入参数,将应用环境的数据传递到执行部分,可以通过OUT指定输出参数,将执行部分的数据传递到执行部分;
- 创建命令:CREATE PROCEDURE
函数
- 说明:用于返回特定数据,在建立时,函数头部必须包含return子句,在函数体内必须包含return语句返回数据;可用execute或者call命令调用
- 创建命令:CREATE FUNCTION
包
- 说明:用于逻辑组合相关的过程和函数。由包规范和包体构成,包规范用于定义公用的常量,变量,过程和函数,只是对函数,过程进行声明,并不实现。包体用于实现包规范中的函数和过程,调用包中的函数时必须以包名作为前缀(包名.子程序名)
- 创建命令:CREATE PACKAGE + CREATE PACKAGE BODY
4)触发器
触发器是隐含执行的存储过程,用CREATE TRIGGER命令来创建;在使用过程中,应该指定其触发事件以及触发操作,触发事件包括INSERT,DELETE,UPDATE语句,而操作指的就是PL/SQL块;