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:=&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;
关于异常类型请查看附录.