返回介绍

I. 教程

II. SQL 语言

III. 服务器管理

IV. 客户端接口

V. 服务器端编程

VI. 参考手册

VII. 内部

VIII. 附录

37.9. 错误和消息

发布于 2019-09-30 03:09:29 字数 1022 浏览 938 评论 0 收藏 0

利用 RAISE 语句报告信息以及抛出错误。

RAISE level 'format' [, expression [, ...]];

可能的级别有 DEBUG(向服务器日志写信息), LOG(向服务器日志写信息,优先级更高), INFO, NOTICE, WARNING(把信息写到服务器日志以及转发到客户端应用,优先级逐步升高), EXCEPTION(抛出一个错误,通常退出当前事务)。某个优先级别的信息是报告给客户端还是写到服务器日志,还是两个都做是由 log_min_messages 和 client_min_messages 配置变量控制的。参阅章17获取更多细节。

在格式字符串里,% 被下一个可选参数的外部表现形式代替。要表示 % 字符必须双写(%%)。参数可以是简单的变量或者表达式,而格式必须是一个简单的字符串文本。

在这个例子里,v_job_id 的值将代替字符串中的 %

RAISE NOTICE 'Calling cs_create_job(%)', v_job_id;

这个例子将会带着给出的错误信息退出事务:

RAISE EXCEPTION 'Nonexistent ID --> %', user_id;

RAISE EXCEPTION 目前总是生成同样的 SQLSTATE 代码(P0001),不管调用它的信息是什么。可以用 EXCEPTION ... WHEN RAISE_EXCEPTION THEN ... 捕获这样的异常,但是无法从一个 RAISE 里告诉另外一个相关的状态。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文