PLSQL块结构

来源:互联网 发布:sql 多个结果合并 编辑:程序博客网 时间:2024/06/05 17:56

块是PLSQL程序的基本单位,所有的PLSQL程序都是有块组成,组成的块分为两大类:匿名块:没有名称的OLSQL块,可以内嵌到应用程序中或者能在TOAD或者是 SQL*PLUS中直接运行的块。这种块通常由客户端程序产生,用来调用服务器上的子程序,这种块不会被保存在数据库中。命名块:具有名称的PLSQL块,又细分为3个部分,这种类型的块一般保存在服务器端的数据库中。1.使用<<块名称>>进行识别的块,通常是在块嵌套时,为了区分多级嵌套层次关系而使用命名加以区分2.由函数或过程组成的子程序块,这种块保存在数据库中3.数据库触发器块,触发器块是指当数据库中的某个事件触发后要执行的PLSQL块组成:1.定义部分:定义常量,变量,游标,异常,复杂数据类型等。2.执行部分:包含了要执行的PLSQL语句和SQL语句,用于实现应用模块的功能3.异常处理部分:用于捕获执行部分可能出现的运行错误,并编写出错后的代码。如下所示:delcare--可选--定义部分begin --必须--执行部分exception --可选--异常处理部分(这里可以抛出异常,打印错误,记录异常日志)end;


例子:向t1(dept)表中插入一条部门记录,首先判断指定编号的记录是否存在,如果不存在则添加首先创建一张测试表create table t1 as select * from dept;declare---声明部分l_deptno number :='50';l_dname varchar2(20) :='HR';l_loc varchar2(20) :='BeiJing';l_cnt number; begin---执行部分select count(*) into l_cnt from t1 where deptno=l_deptno;---判断l_cnt=0,则部门不存在,插入数据if l_cnt=0 theninsert into t1 (deptno,dname,loc)values (l_deptno,l_dname,l_loc);--打印信息dbms_output.put_line('信息插入成功');commit;end if;---定义异常部分exception when others then---打印异常信息dbms_output.put_line('信息插入错误');end;/