文档介绍:第六章:PL/SQL编程基础
第一节 PL/SQL的简介
第二节 PL/SQL 程序结构
第三节 PL/SQL的控制结构
第四节出错处理
第五节游标
第一节 PL/SQL的简介
PL/SQL(Procedure language and SQL)是Oracle对SQL的一种扩充,它集成了程序化设计语言中的许多特性。SQL是一种存取Oracle数据库的语言,PL/SQL将SQL的强大性和灵活性与过程化语言的过程性融为一体。
PL/SQL将Oracle服务器与其他工具结合起来,可以从各种工具和各种环境中访问Oracle数据库。PL/SQL不是一个独立的产品。PL/SQL是嵌入在Oracle服务器和Oracle开发工具中的。
一、 PL/SQL的优点
PL/SQL具备了SQL的功能和SQL语言所不具备的过程化功能。优点如下:
(1)过程化和模块化
(2)具有过程化语言的控制结构
(3)错误处理
(4)可移植性
(5)集成
(6)改善性能
二、 PL/SQL的特点
1、支持所有的事务控制命令
2、支持所有SQL数据操纵命令
3、使用Oracle所提供的DBMS_SQL包可以处理SQL的数据定义命令和数据控制命令
4、PL/SQL支持所有SQL数据类型、SQL函数和各种运算符。
5、PL/SQL块可以被存储在Oracle 服务器中,可以被存取和重用。
6、存储在服务器上的PL/SQL程序的安全性可以使用授权和回收权限进行管理。
三、如何编写和编译PL/SQL程序块
1、启动SQL*Plus工具。
2、SQL> edit c:\;
3、在编辑窗口中输入PL/SQL语句,在END;结束符的下一行开头加“/”作为结束标志。
4、保存刚输入的PL/SQL块,关闭编辑窗口
5、激活dbms_output包,编译和运行块。
SQL> SET serveroutput ON;
SQL> start c:\;
6、如果编译有错,回到第三步检查语法,然后回到第五步重新编译。直到成功为止。
第二节:PL/SQL 程序结构
一、块结构
1、块的基本结构
[Declare]
-- 说明部分(可选的)
begin
-- 语句执行部分(必需的)
[exception]
-- 出错处理程序(可选的)
end;
/
其中:只有语句执行部分是必需的,其他两部分都是可选的。
2、嵌套块结构
[Declare]
...... /*说明部分*/
Begin
...... /*主块的语句执行部分*/
Begin
...... /*子块的语句执行部分*/
[Exception]
...... /*子块的出错处理程序*/
End;
[Exception]
...... /*主块的出错处理程序*/
End;
/
3、PL/SQL块的类型
程序块
描述
应用的环境
无名块
嵌入在应用内或交互式发出的无名块
任何PL/SQL环境
有名块
可以接受参数,并返回结果的有名PL/SQL块,存储在应用程序中。这些块可以被重复调用。
Oracle Developer6i的各个工具
存储过程、函数
可以接受参数,并返回结果的有名PL/SQL块,存储在服务器端。这些块可以被重复调用。
任何客户端工具和服务器环境
包
有名的PL/SQL模块,是相关的过程、函数、标识符的集合。存储在服务器端,可以被重复调用
任何客户端工具和服务器环境
数据库触发器
与数据库表相关的PL/SQL块,存储在服务器端。在客户与服务器端的触发事件发生时自动触发。
任何客户端工具和服务器环境
应用触发器
与一个应用事件相关的PL/SQL块,存储在应用程序中。在应用程序的触发事件发生时自动触发。
Oracle Developer6i的各个工具
二、变量定义
变量在DECLARE部分中定义,并且在被参考之前被定义。定义变量的语法如下:
变量[CONSTANT] 数据类型[NOT NULL]
[:= | DEFAULT PL/SQL表达式];
举例说明变量的定义和赋初值
V_NUM NUMBER(2):=12;或
V_NUM NUMBER(2) DEFAULT 12;
C_ZERO_VALUE CONSTANT NUMBER :=0;
V_CHAR VARCHAR2(10):=‘ASASAS’;
V_DATE DATE:=‘05-JUL-99’;
V_BOOLEAN BOOLEAN := FALSE;
1、变量的命名规则
●变量由字母开头,后面跟随任何字符序列,包括字母、数字、货币符号、下划线字符和# 号字符。其他字符则是非法的。
●一个变量的最大长度是30个字符
●