当前位置:文章写作网 >日记 >日记 >oracle学习笔记-plsql块介绍

oracle学习笔记-plsql块介绍

2008-11-12 14:38 作者:tshfang 阅读量:6533 推荐31次 | 我要投稿

一、结构

pl/sql块由三部分组成:定义,执行,例外处理。

定义部分用于定义常量,变量,游标,例外,复杂的数据类型等等。

执行部分用于实现应用模块功能,如pl/sql语句或者是sql语句。

例外部分用于处理执行部分可能出现的错误。

pl/sql块的基本结构如下:

declare

定义部分

begin

执行部分

exception

异常处理部分

end;

注意在declare,begin,exception后面没有;而在end后面却有;

使用sqlplus作几个例子

1、

SQL> set serveroutput on

SQL> begin

2 dbms_output.put_line('hello,oracle');

3 end;

4 /

hello,oracle

PL/SQL 过程已成功完成。

SQL>

dbms_output是oracle系统提供的包,put_line是其中的过程。

2、

SQL> set serveroutput on

SQL> declare

2 v_name varchar2(10);

3 begin

4 select dname into v_name

5 from SCOTT.DEPT

6 where deptno=&no;

7 dbms_output.put_line('部门名称'||v_name);

8 end;

9

10 /

输入 no 的值: 10

原值 6: where deptno=&no;

新值 6: where deptno=10;

部门名称ACCOUNTING

PL/SQL 过程已成功完成。

SQL>

3、

SET serveroutput on

DECLARE

v_name VARCHAR2 (10);

BEGIN

SELECT dname

INTO v_name

FROM scott.dept

WHERE deptno = &no;

DBMS_OUTPUT.put_line ('部门名称' || v_name);

EXCEPTION

WHEN NO_DATA_FOUND

THEN

DBMS_OUTPUT.put_line ('请输入正确的部门名称');

END;

/

输入 no 的值: 78

原值 7: WHERE deptno = &no;

新值 7: WHERE deptno = 78;

请输入正确的部门名称

PL/SQL 过程已成功完成。

输入 no 的值: 10

原值 7: WHERE deptno = &no;

新值 7: WHERE deptno = 10;

部门名称ACCOUNTING

PL/SQL 过程已成功完成。

二、分类

1、匿名块

没有指定名称的pl/sql块.向上面的例子都属于匿名块。

2、命名块

在块的前面加<<>>标记块的名字。

SET serveroutput on

<<dept>>

DECLARE

v_name VARCHAR2 (10);

BEGIN

SELECT dname

INTO v_name

FROM scott.dept

WHERE deptno = &no;

DBMS_OUTPUT.put_line ('部门名称' || v_name);

EXCEPTION

WHEN NO_DATA_FOUND

THEN

DBMS_OUTPUT.put_line ('请输入正确的部门名称');

END;

/

3、子程序

子程序包含过程、函数、触发器和包。

子程序将在下篇文章介绍。

其他人在看啥

    《oracle学习笔记-plsql块介绍》的评论 (共 0 条)

    • Guest:了解了,我就郁闷,为什么我的内容怎么显示不出来,原来是,没有打开,set serveroutput on
    • Guest::like