按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
close payment_cursor
分析
在上一个例子中使用了 WHILE…LOOP 来对指针进行翻阅 并且在当条件
payment start proc1 or
SQL》 sta proc1 or
SQL》 @proc1
注 PL/SQL 脚本语言可以使用 START 命令或@字符来运行 它也可以被其它的 PL/SQL
脚本 SHELL 脚本或其它的程序调用
将输入返回给用户
尤其是在捕获了错误的时候 你可以会希望输出信息给用户告诉他出现了什么错误
你可以转送已有的错误信息 你也可以显示你所定制的错误信息 对于用户来说这会与错
误代码更容易理解 也许你想的是当在错误产生时让他们与数据库管理员联系而不是给他
们尽可以准确的信息
PL/SQL 在它的语法部分中并没有提供直接的方式来显示输出 但是它可以让你来调
用一个对该语句块服务的包 这个包是由 DBMS_OUTPUT 来调用的
EXCEPTION
WHEN zero_divide THEN
DBMS_OUTPUT。put_line('ERROR: DIVISOR IS ZERO。 SEE YOUR DBA。')
分析
ZERO_DIVIDE 是 ORACLE 的一个预定义的异常 有许多在程序运行中产生的常见的
错误都被预定义为异常并且可以被默认地激活 也就是说你不必在编程的过程中手动将其
激活
394
…………………………………………………………Page 395……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
如果在这个语句块运行的过程中产生的异常 用户将会看到
INPUT
SQL》 @block1
ERROR: DIVISOR IS ZERO。 SEE YOUR DBA。
PL/SQL procedure successfully pleted。
是不是这样的错误信息比下边的错误信息更友好
输入/输出
SQL》 @block1
begin
*
ERROR at line 1:
ORA…01476: divisor is equal to zero
ORA…06512: at line 20
在 PL/SQL 中的事务控制
在第 11 天中的 事务控制 中 我们已经讨论了事务控制命令 MIT ROLLBACK
SAVEPOINT 这些命令可以让程序员在在事务向数据库中进行写操作时加以控制 在多数
时候所进行的操作是需要撤消
语法
BEGIN
DECLARE
。。。
BEGIN
statements。。。
IF condition THEN
MIT;
ELSE
ROLLBACK;
END IF;
395
…………………………………………………………Page 396……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
。。。
EXCEPTION
。。。
END;
END;
PL/SQL 的一个好处就是你可以用自动地执行事务控制命令来代替对大型事务的不断
监控— — 这是非常单调和乏味的
让所有的事在一起工作
到目前为止 我们已经介绍了 PL/SQL 你已经熟悉了它所支持的数据类型以及 PL/SQL
语句块的主要特性 你已经知道了如何定义一个局部变量 常量和指针 你也已经知道了
如何在一个 PROCDURE 部分 指针的操作部分和