暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBASE:GBae 8s SQL 指南:语法_3 SPL 语句_ ON EXCEPTION(6)

GBASE数据库 2022-03-11
433

当出现错误时,数据库服务器搜索捕获错误代码的最后一个 ON EXCEPTION 语句。如果数据库服

务器找不到相关 ON EXCEPTION 语句,则错误代码传回调用上下文(SPL 例程、应用程序或交

互用户),执行终止。

在前面的示例中,在指定错误 -206 的 IN 子句中需要减号(-),大多数错误代码都是负整数。

下一示例使用了两个具有相同错误号的 ON EXCEPTION 语句,因而可以在两个嵌套级别中捕获错误

代码 691 。除了标有 { 6 } 的 DELETE 语句,所有其它 DELETE 语句都在第一个 ON EXCEPTION

语句的作用域中。标有 { 1 } 和 { 2 } 的 DELETE 语句都在内部 ON EXCEPTION 语句的作用域

中:

CREATE PROCEDURE delete_cust (cnum INT)

ON EXCEPTION IN (-691) -- children exist

BEGIN -- Begin-end so no other DELETEs get caught in here.

ON EXCEPTION IN (-691)

DELETE FROM another_child WHERE num = cnum; { 1 }

DELETE FROM orders WHERE customer_num = cnum; { 2 }

END EXCEPTION -- for error -691

DELETE FROM orders WHERE customer_num = cnum; { 3 }

END

DELETE FROM cust_calls WHERE customer_num = cnum; { 4 }

DELETE FROM customer WHERE customer_num = cnum; { 5 }

END EXCEPTION

DELETE FROM customer WHERE customer_num = cnum; { 6 }

END PROCEDURE

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论