PL/SQL 学习笔记 一

1.PL/SQL块结构

Declare

/*

* 定义部分--定义常量,变量,复杂数据类型,游标,例解

*/

Begin

/*

* 执行部分--PL/SQL语句和SQL语句

*/

Exception

/*

*异常处理或例外处理部分--处理运行出现的错误

*/

End;/*块结束标记*/

其中定义部分以Declare开始,该部分是可选的;执行部分以begin开始,该部分是必须的;例外处理部分以exception开始,该部分是可选的;而End则是PL/SQL块的结束标记,要注意的是Declare,begin,exception后面没有分号,而end后必须加分号。

2.PL/SQL块分类

包含四类:匿名块,命名块,子程序,触发器

a.匿名块

指没有名称的PL/SQL块,匿名块既可以内嵌到应用程序中,也可以在交互式环境中直接使用。

For Eg.

declare

v_avgsal number(6,2)

begin

select avg(sal) into v_avgsal from emp

where deptno=&no;

dbms_output.put_line('平均工资:'||v_avgsal);

End;

输入的值为:10

平均工资:2222.00

b.命名块

指具有特定名称标识的PL/SQL块,命名块与匿名块非常类似,只不过在PL/SQL块前使用<<>>加以标记,当使用嵌套块时,为了区分多级嵌套层次关系,可以使用命名块加以区分。

For Eg.

<<outer>>

declare

v_deptno number(2);

v_dname varchar2(10);

begin

<<inner>>

begin

select deptno into v_deptno from emp

where lower(ename)=lower('&name');

End;--<<inner>>

select dname into v_dname from dept

where deptno=v_deptno;

dbms_output.put_line('部门名:'||v_dname);

end;--<<outer>>

c.子程序

包含过程,函数,包。当开发PL/SQL子程序时,既可以开发客户端的子程序,也可以开发服务器端的子程序。客户端子程序主要用在Developer中,而服务器子程序可以用在任何应用程序中。通过将商业逻辑和企业规则集成到PL/SQL子程序中,可以简化客户端程序的开发和维护,并且提高应用程序的性能。

包中可以包含函数和过程 For Eg:

d.触发器

触发器是指隐含执行的存储过程。当定义触发器时,必须要制定触发时间以及触发操作,常用的出发时间包括INSERT,UPDATE和DELETE语句,而触发操作实际是一个PL/SQL块。在SQL*PLUS中建立触发器是使用CREATE TRIGGER 命令来完成的。

For Eg.

posted on 2011-06-29 16:44  ~~奔跑~~  阅读(524)  评论(0编辑  收藏  举报

导航