在最近的工作中要用到存储过程和函数,索性把PL/SQL整体的看一下。之前看过基本书和园子里的博文,在这里将所学简单总结。
一、基本语句
1、大小写
2、分隔符 -- ;
3、引用字符串 -- ‘ ’
4、括号 -- ( )
二、数据类型
1、标量类型
1>数字类型 -- NUMBER等
2>字符类型 -- CHAR VARCHAR
3>日期类型 -- DATE TIMESTAMP INTERVAL
4>行标识类型 -- ROWID UROWID
5>布尔类型 -- TURE FALSE NULL
2、复合类型
1>记录 -- 类似C语言的结构体
2>联合数组
3>嵌套表
4>变长数组
3、引用类型
1>游标
2>REF类型
4、LOB类型
三、基本结构
1、声明部分 -- DECLARE开头
2、执行部分 -- BEGIN开头,END结束
3、异常处理 -- EXCEPTION开头
四、常量
常量名 CONSTANT 类型标识符[NOT NULL] := 值;
PI CONSTANT NUMBER(9) := 3.1415926;
五、变量
变量名 类型标识符[NOT NULL]:= 值;
%TYPE使变量获得字段的数据类型
%ROWTYPE使变量获得整个记录的数据类型
六、表达式
数值表达式:+ - * / **(乘方)
字符表达式:由连接符||组成的
关系表达式:< > == <= >= != ALL ANY BETWEEN EXISTS IN IS LIKE
逻辑表达式:NOT OR AND
七、运算符
集合运算符:INTERSECT MINUS UNION UNION ALL
行运算符: ALL DISTINCT PRIOR(树形查询时返回当前行的父级行)
八、条件控制
1、IF条件
IF···THEN···END IF;
IF···THEN···ELSE···END IF;
IF···THEN···ELSIF···THEN···ELSE···END IF;
2、CASE条件
CASE 表达式
WHEN 值1 THEN
···············;
WHEN 值2 THEN
···············;
········
ELSE
···············;
END CASE;
3、搜寻式CASE条件
CASE
WHEN 表达式1 THEN
·····················;
WHEN 表达式2 THEN
····················;
··············
ELSE
·················;
END CASE;
九、循环控制
1、LOOP循环
<<outer>>
LOOP LOOP LOOP
······; ············; ···········;
EXIT; EXIT WHEN 条件表达式; LOOP
END LOOP; END LOOP; ············;
EXIT outer WHEN 条件表达式; --(两个循环均退出)
END LOOP;
END LOOP outer;
2、WHILE···LOOP
WHILE 表达式 LOOP
············;
END LOOP;
3、FOR ···LOOP
FOR i IN 1..5 LOOP
············;
END LOOP;
十、其他功能特性
1、游标
2、过程
3、函数
4、包
5、集合
6、错误处理