1.PL/SQL概述
PL/SQL是Oracle对标准SQL规范的扩展,全面支持SQL的数据操作、事务控制等。PL/SQL完全支持SQL数据类型,减少了在应用程序和数据库之间转换数据的操作。
构成PL/SQL程序的基本单位是程序块。程序块由过程、函数和无名块3种形式组成,它们之间可以互相嵌套。
PL/SQL的运行工具有:SQL*Plus、PL/SQL developer
2.PL/SQL程序的基本结构
PL/SQL块由四个基本部分组成:声明、执行体开始、异常处理、执行体结束。
下面是四个部分的基本结构:
DECLARE —— 可选部分
变量、常量、游标用户定义异常的声明
……
BEGIN —— 必要部分
SQL语句和PL/SQL语句构成的执行程序
……
EXCEPTION —— 可选部分
程序出现异常时,捕捉异常并处理异常
……
END;—— 必须部分
在数据库执行PL/SQL程序时,PL/SQL语句和SQL语句是分别进行解析和执行的。PL/SQL块被数据库内部的PL/SQL引擎提取,将SQL语句取出送给Oracle的SQL引擎处理,两种语句分别在两种引擎中分析处理,在数据库内部完成数据交互、处理过程。
3.PL/SQL示例









Decode编译进行分类:Decode编码
)


在PL/SQL中,针对多行多列的数据类型,可以使用游标变量。
PL/SQL的游标指把从数据库中查询出来的数据以临时表的形式存放在内存中.游标可以对存储在内存中的数据进行操作,返回一条或一组记录,或者一条记录都不返回.
(1)隐式游标(在PL/SQL中使用DML语句时自动创建隐式游标)
游标作为一个临时表,可以通过游标的属性来获取游标状态.游标有4个常用的属性:
- %ISOPEN:用于判断游标是否已经打开
- %FOUND:用于判断游标是否找到记录
- %NOTFOUND:与%FOUND相反.
- %ROWCOUNT:返回到当前为止已经提取到的实际行数.

(2)显示游标(有声明)(显式游标在 PL/SQL 块的声明部分定义查询,该查询可以返回多行)
解决方案:
1.
2.
3.
4.
带参数的显示游标(声明显式游标时可以带参数以提高灵活性)
循环游标(循环游标用于简化游标处理代码)
(3)REF 游标和游标变量 (REF 游标和游标变量用于处理运行时动态执行的 SQL 查询)
创建游标变量需要两个步骤:
声明 REF 游标类型
声明 REF 游标类型的变量
用于声明 REF 游标类型的语法为:
TYPE <ref_cursor_name> IS REF CURSOR
[RETURN <return_type>];
根据游标添加sal值
(4)游标异常
在游标使用过程中,一般有可能发生两种异常:
CURRSOR_ALREADY_OPEN :游标重复打开时异常。
INVALID_CURSOR:无效的游标异常。

