购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.6.2 错误和消息

PL/SQL程序运行过程中不可避免地会出现错误,可以使用RAISE语句报告消息,并抛出错误。

level选项指定了错误的严重性。允许的级别有DEBUG、LOG、INFO、NOTICE、WARNING以及EXCEPTION,默认级别是EXCEPTION。EXCEPTION会抛出一个错误(通常会中止当前事务)。其他级别仅仅是产生不同优先级的消息。一个特定优先级的消息无论被报告给客户端还是写到服务器日志,亦或是二者同时都做,都由log_min_messages和client_min_messages配置参数控制。

如果有level,可以在其后写一个format(必须是一个简单字符串而不是表达式)。该格式字符串指定被报告的错误消息文本。在格式字符串后面可以跟上可选的、被插入到该消息的参数表达式。在格式字符串中,%会被下一个可选参数的值所替换。%%可以发出一个字面的%。参数的数量必须匹配格式字符串中%占位符的数量,否则函数编译时会报错。

在option=expression项的后面加上USING,可以为错误报告附加一些额外信息。每一个expression可以是任意字符串值的表达式。允许的option关键词是:

①MESSAGE:设置错误消息文本。该选项可以用于在USING之前包括一个格式字符串的RAISE形式。

②DETAIL:提供一个错误的细节消息。

③HINT:提供一个提示消息。

④ERRCODE:指定要报告的错误代码(SQLSTATE),可以用条件名,或者直接作为一个五字符的SQLSTATE代码。

⑤COLUMN、CONSTRAINT、DATATYPE、TABLE、SCHEMA:提供一个相关对象的名称。

示例2.20: 使用RAISE语句报告消息以及抛出错误。

程序代码如下。

程序运行结果如下。

除了上述错误消息外,还存在其他异常情况导致的错误信息,请参考第7章中关于异常信息的捕获内容描述。 GdPSw7r5WbfHinJ1IHiPKyXtDgzBJnRNkHkmDpR8wl+YeTk72CKcAdDBiuzv7Y99

点击中间区域
呼出菜单
上一章
目录
下一章
×