(营养早餐~~ =。=
)

一、PL/SQL 所包含的内容
1、plsql 基本的语法格式
2、记录类型 type ... is record ( , , , );
3、流程控制
3.1 条件判断(两种)
方式一: id ... then elseif then ... else ... endid;
方式二: case ... when ... then ... end;
3.2 循环结构(三种)
方式一:loop ... exit when ... end loop;
方式二:while ... loop ... end loop;
方式三:for i in ... loop ... end loop;
3.3 goto、exit
4、游标的使用(类似于 Java 中的 Interator)
5、异常处理(三种方式)
6、能够完成一个存储函数(Function)[有返回值],存储过程[没有返回值]
7、能够完成一个触发器
简单赋值:
记录类型
复杂的记录类型
二、使用 %TYPE
定义一个变量,其数据类型与已经定义的某个数据变量的类型相同,或者与数据库的某个列的数据类型相同,这时可以使用 %TYPE。
使用 %type 的优点:
-- 所引用的数据库中的列的个数和数据类型可以不必知道
-- 所引用的数据库中的列的个数和数据类型可以实时改变
三、使用 %ROWTYPE
PL/SQL 提供 %ROWTYPE 操作符,返回一个记录类型,其数据类型和数据库表的数据结构一致。
使用 %ROWTYPE 的优点:
-- 所引用的数据库中的列的个数和数据类型可以不必知道
-- 所引用的数据库中的列的个数和数据类型可以实时改变
例1:
例2:
四、需要注意的 N 个地方
4.1 注意使用记录类型和不使用记录类型时的格式(逗号,分号的位置等)
4.2 输出语句为:dbms_output.put_line();
4.3 使用 SELECT 语句对记录变量进行赋值,只要保证记录字段与查询结果列表中的字段相匹配即可
4.4 不能将 SELECT 语句中的列赋值给布尔类型
4.5 运算符和表达式(数据定义)
关系运算符
一般运算符
运算符 意义
+ 加号
- 减号
* 乘号
/ 除号
:= 赋值号
=> 关系号(游标参数的赋值)
.. 范围运算符
|| 字符连接符
逻辑运算符
4.6 变量赋值
在 PL/SQL 编程中,变量赋值是一个值得注意的地方,语法如下:
variable := expression;
variable 是一个 PL/SQL 变量,expression 是一个 PL/SQL 表达式
1)字符及数字运算特点
-- 空值加数字仍是控制:NULL + <数字> = NULL
空值加(连接)字符,结果为字符:NULL || <字符串> = <字符串>
2)BOOLEAN 赋值
-- 布尔值只有 ture 、false 及 null 三个值
3)数据库赋值
-- 数据库赋值是通过 SELECT 语句来完成的,每次执行 SELECT 语句就赋值一次,一般要求赋值的变量和 SELECT 的列名要一一对应。
4.7 可转换的类型赋值
·char 转换为 number
使用 to_number 函数来完成字符到数字的转换,如:
v_total := to_number('100.0') + sal;
·numebr 转换为 char
使用 to_char 函数可以实现数字到字符的转换,如:
v_comm := to_char('123.45')||'元'
·字符转换为日期:
使用 to_date 函数可以实现字符到日期的转换,如:
v_date := to_date('2015.8.31' , 'yyyy.mm.dd');
·日期转换为字符:
使用 to_char 函数可以实现日期到字符的转换,如:
v_to_day := to_char(SYSDATE , 'yyyy.mm.dd hh24:mi:ss');