PL/SQL 结构
DECLARE --声明部分
声明语句
BEGIN --执行部分
执行语句
EXCEPTION --异常处理部分
执行语句
END;
变量声明
<变量名> 类型[:=初始值];
特殊类型 字段%type
示例: name emp.ename%type --表示name的类型和emp.ename的类型相同
表 %rowtype
示例: test emp%rowtype --表示test的类型为emp表的行类型;也有 .empno; .ename; .sal
;等属性
常量声明
<变量名> CONSTANT 类型:=初始值;
示例: pi constant number(5,3):=3.14;
全局变量声明
VARIABLE <变量名> 类型;
示例: VARIABLE num number;
使用全局变量
:<变量名>
示例:
:num:=100;
i=:num;
查看全局变量的值
print <变量名>
示例: print num;
赋值运算符: :=
示例: num := 100;
使用SELECT <列名> INTO <变量名> FROM <表名> WHERE <条件>
注意select into 语句的返回结果只能为一行;
示例:test emp%rowtype;
select * into test from emp where empno=7788;
用户交互输入
<变量>:='&变量'
示例:
num:=#
注意oracle的用户交互输入是先接受用户输入的所有值后在执行语句;
所以不能使用循环进行用户交互输入;
条件控制语句
IF <条件1> THEN
语句
[ELSIF <条件2> THEN
语句
.
.
.
ELSIF <条件n> THEN
语句]
[ELSE
语句]
END IF;
循环控制语句
1.LOOP
LOOP
语句;
EXIT WHEN <条件>
END LOOP;
2.WHILE LOOP
WHILE <条件>
LOOP
语句;
END LOOP;
3.FOR
FOR <循环变量> IN 下限..上限
LOOP
语句;
END LOOP;
NULL 语句
null;
表示没有操作;
注释使用
单行注释: --
多行注释:/* .......
...............*/
异常处理
EXCEPTION
WHEN <异常类型> THEN
语句;
WHEN OTHERS THEN
语句;
END;
关于异常类型请查看附录.