前言
享受自由.
PL /SQL 是一种高级数据库程序设计语言,该语言专门用于在各种环境下对 ORACLE 数据库进行访问.由于该语言集成于数据库服务器中,所以 PL/SQL 代码可以对数据进行快速高效的处理.除此之外,可以在 ORACLE 数据库的某些客户端工具中,使用 PL/SQL 语言也是该语言的一个特点.
PL/SQL 块结构和组成元素
PL/SQL 块
PL/SQL 程序由三个块组成,即声明部分,执行部分,异常处理部分.
PL/SQL 块的结构如下:
/* 声明部分: 在此声明 PL/SQL 用到的变量, 类型及游标,以及局部的存储过程和函数 * /
BEGIN
/* 执行部分: 过程及 SQL 语句 , 即程序的主要部分 * /
EXCEPTION
/* 执行异常部分: 错误处理 */
END;
其中 执行部分是必须的.
记录类型语法
定义如下:
例:
TYPE record_type IS RECORD(
Field1 type1 [NOT NULL] [:= exp1],
Field2 type2 [NOT NULL] [:= exp2],
. . . . . .
Fieldn typen [NOT NULL] [:= expn] ) ;
屏幕快照 2018-01-14 00.35.23.png
或:
屏幕快照 2018-01-14 00.36.49.png
提示
DBMS_OUTPUT.PUT_LINE 过程的功能类似于 Java 中的 System.out.println() 直接将输出结果送到标准输出中.
在使用上述过程之前必须将 SQL * PLUS 的环境参数 SERVEROUTPUT 设置为 ON, 否则将看不到输出结果: set serveroutput on
使用 %TYPE 语法
定义一个变量,其数据类型与已经定义的某个数据变量的类型相同,或者与数据库表的某个列的数据类型相同,这时可以使用 %TYPE.
使用 %TYPE 特性的优点在于:
所引用的数据库列的数据类型可以不必知道;
所引用的数据库列的数据类型可以实时改变;
例:
屏幕快照 2018-01-14 00.39.28.png
使用 %ROWTYPE 语法
PL/SQL 提供 %ROWTYPE 操作符, 返回一个记录类型, 其数据类型和数据库表的数据结构相一致.
使用 %ROWTYPE 特性的优点在于:
所引用的数据库中列的个数和数据类型可以不必知道;
引用的数据库中列的个数和数据类型可以实时改变.
例:
屏幕快照 2018-01-14 00.41.23.png
流程控制语法
介绍 PL/SQL 的流程控制语句, 包括如下三类:
控制语句: IF 语句
循环语句: LOOP 语句, EXIT 语句
顺序语句: GOTO 语句, NULL 语句
条件语句
IF 表达式
IF <布尔表达式> THEN
PL/SQL 和 SQL 语句
END IF;
IF <布尔表达式> THEN
PL/SQL 和 SQL 语句
ELSE
其它语句
END IF;
IF <布尔表达式> THEN
PL/SQL 和 SQL 语句
ELSIF <其它布尔表达式> THEN
其它语句
ELSIF <其它布尔表达式> THEN
其它语句
ELSE
其它语句
END IF;
case 表达式
循环语句
CASE selector
WHEN expression1 THEN result1
WHEN expression2 THEN result2
....
WHEN expressionN THEN resultN
[ELSE resultN+1]
END;
简单循环
LOOP
要执行的语句;
EXIT WHEN <条件语句> /* 条件满足,退出循环语句 */
END LOOP;
while 循环
WHILE <布尔表达式> LOOP
要执行的语句;
END LOOP;
for 循环
FOR 循环计数器 IN [REVERSE] 下限 .. 上限 LOOP
要执行的语句;
END LOOP;
标号和 GOTO
PL/SQL 中 GOTO 语句是无条件跳转到指定的标号去的意思.语法如下:
<>/* 标号是用 <<>> 括起来的标识符 */
GOTO label;
. . . . . .
一般不用,容易打乱程序的结构.
来源: http://www.jianshu.com/p/c9a0cc06700c