↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2
历史版本PostgreSQL 8.0 已于 2010 年 10 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本。

35.9. 错误和消息 #

使用 RAISE 语句报告消息并抛出错误。

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

可能的级别有DEBUG、 LOG、INFO、 NOTICE、WARNING 和 EXCEPTION。EXCEPTION抛出一个错误(这通常会中止当前事务);其他级别只生成不同优先级的消息。某个特定优先级的消息是报告给客户端、写入服务器日志,还是两者都做,由log_min_messages和client_min_messages配置变量控制。更多信息见第 16.4 节。

在格式字符串内,%会被替换为下一个可选参数的字符串表示。写成%%可以输出一个字面的%。注意,目前可选参数必须是简单变量而不能是表达式,并且格式必须是简单的字符串字面量。

在这个例子中,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和另一个。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。