Oracle之PL/SQL学习笔记之PL/SQL块(二)
1. PL/SQL块
PL/SQL 程序由三部分组成,即声明部分,执行部分,例外部分(异常部分)
PL/SQL 块的结构如下:
declare
/*声明部分:在此声明PL/SQL用到的变量,类型以及游标,局部的存储过程和函数*/
begin
/*执行部分:过程以及语句,即程序的主要部分*/
exception
/*执行异常部分:错误处理*/
end;
其中,执行部分是必须的,其余部分是可选的。
最简单的块为:
begin
null;--执行部分最少要添加null;表示空语句,什么都不执行,但是没有null就报错
end;
PL/SQL块可以分为三类:
a. 无名块:动态结构,只能执行一次
b. 子程序: 存储在数据库中的存储过程,函数以及包等。当在数据库上建好后可以在其他程序中调用它们
c. 触发器: 当数据库发生操作时,会触发一些事件,从而自动执行相应的程序。
2. 标识符
PL/SQL 程序设计中的标识符定义与SQL的标识符定义的要求相同。要求和限制有:
标识符名不能超过30个字符
第一个字符必须为字母
不分大小写
不能用'-'(减号)
不能是SQL保留字
提示: 一般不要把变量名声明与表中字段名完全一样,如果这样可能得到不正确的结果。
declare
ename emp.ename%type:='KING';
begin
delete from emp where ename=ename;
end;
以上案例,不是删除ename='KING'的员工信息,而是删除了整表的信息相当于 delete from emp
3. PL/SQL命名规范
变量命名在PL/SQL中有特别的讲究,建议在系统的设计阶段就要求所有变成人员共同遵守一定的要求,使得整个系统的文档在规范上达到要求。
标识符
命名规则
例子
程序变量
V_name
V_name
程序常量
C_Name
C_company_name
游标变量
Name_cursor
Emp_cursor
异常标识
E_name
E_too_many
表类型
Name_table_type
Emp_record_type
表
Name_table
Emp
记录类型
Name_record
Emp_record
SQL*Plus替代变量
P_name
P_sal
绑定变量
G_name
G_year_sal
4. 表达式
数据库中经常使用表达式来计算结果,尤其在变量和常量的使用过程中。
数值表达式
关系表达式
逻辑表达式
4.1 数值表达式(结果还是数值)
数值表达式就是由数值类型的常量,变量以及函数,由算术运算符连接而成。在PL/SQL中可以使用的算术运算符有:
加号+
减号 -
乘号 *
除号 /
乘方 **
begin
dbms_output.put_line(3**3); -- 3*3*3=27
end;
4.2 关系表达式和逻辑表达式(结果是boolean)
由关系运算符连接起来的字符或数值称为关系表达式。其中关系运算符主要有以下几种:
等于号 =
小于号 <
大于号 >
小于等于<=
大于等于>=
不等于!=和<>
关系表达式很多用在PL/SQL的条件语句中,它们最后的结果是一个布尔类型的值
逻辑表达式
逻辑非 NOT
逻辑或OR
逻辑与AND
begin
if 1<>2 AND 1<2 then
dbms_output.put_line('1!=2');
end if;
dbms_output.put_line(3**3);
end;
未完待续.....