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;
未完待续.....
来源:oschina
链接:https://my.oschina.net/u/1775885/blog/309458