一、PL/SQL目标
二、Pl/SQL简介
是Oracle公司开发的,专门用于Oracle数据库的一种程序开发语言。
Pl:代表procedural language,过程性语言。
SQL:
增加了循环控制、条件判断等编程语言的特点。
三、块block的介绍
组成:包含4个部分。
1、块的声明部分,以declare关键字开头。写所有的变量、常量声明。是可选的部分。
2、块的主体部分,以begin关键字开头,写块的主要功能。是必须的部分。
3、异常处理部分,以exception关键字开头,处理主体部分可能出现的异常。是可选的部分。
4、结束部分,以关键字end开头,标示一个块的结束。是必须的部分。end;
注意事项:1、所有的声明都写在declare部分。
2、每行结束都要加上;除了declare,begin,exception这几个关键字之外。
3、一个语句通常写在一行。
四、块的类型
1、匿名块:
2、命名块:
a\存储过程、函数:被动执行
b\触发器:自动执行。
五、变量
1、变量命名规则
2、命名建议。
3、变量类型
标量型:内部没有分量
a、数值型:number、binary_integer、PLS_integer
b、字符型:char,varchar2,
c、日期型:date
d、布尔型:true,False,Null,
复合型:内部有分量
a、记录型变量。
b、pl/SQL表类型。
引用型:
LOB型:
外部变量:声明在块之外的。
绑定变量:绑定变量需要在块的外部声明,使用variable 变量名 变量类型。在块的内如果要使用绑定变量
,需要在变量名之前加上:
替代变量:不需要声明,直接在块中就可以使用。使用方式在变量名前加上&,该变量需要在程序运行时赋值。
4、变量声明语法
变量名 [Constant] 变量数据类型 [Not Null] [:=表达式] [Default 表达式];
注意:变量名不区分大小写。
当使用not null或constant时,必须为其赋初值。
%Type:一种简便声明变量的方式。使用语法:
变量名 前缀%Type [Not Null] [:=表达式] [Default 表达式];
前缀可以是某个表中的某个列,或者是另一个先前声明的变量。该声明方式可以随时和数据库中的某个列保持同步。
5、变量赋值:
语法1:变量名 := 表达式;该语法可以写在declare,begin,exception部分。
语法2:select 列名|表达式 Into 变量名 From ..........
*:如果查询结果集是多行或者0行,则该语句抛出异常。
select后面的列名列表必须和into后面的变量名列表在个数上和数据类型上保持一致。
多个变量名之间用,分割。该语法必须写在begin部分。
6、dmbs_output.put_line:输出语句。
7、set serveroutput On:打开输出标志。
六、注释
1、单行注释:--
2、多行注释: /* 开始,*/结束。
七、过程语句中的函数
1、有效的:单行字符、单行数值、单行日期、转换、nvl.
2、无效的:所有分组函数、decode
八、嵌套块和变量的作用域。
九、PL/SQL块中的SQL语句。
只有DML(insert、update、delete、merge)、Select、TCL(commit、rollback、savepoint)
这三种命令可以直接写在pl/sql块中。
DDL(Create\Alter\Drop\Rename\truncate)、DCL(Grant\Revoke)不可以直接写。
块和事务没有必然联系。