1RAISE[level]'format'[,expression[,...]][USINGoption=expression[,...]];2RAISE[level]condition_name[USINGoption=expression[,...]];3RAISE[level]SQLSTATE'sqlstate'[USINGoption=expression[,...]];4RAISE[level]USINGo
在PostgreSQL中,RAISE语句用于生成消息、日志或异常。RAISE EXCEPTION是其中最常用的一种,用于显式地抛出异常,从而中断程序的执行流程。下面是对RAISE EXCEPTION的详细解释,包括其语法、使用场景及示例。1. RAISE EXCEPTION的语法 RAISE EXCEPTION语句的基本语法如下: ...
{ "raise_exception", ERRCODE_RAISE_EXCEPTION }, { "no_data_found", ERRCODE_NO_DATA_FOUND }, { "too_many_rows", ERRCODE_TOO_MANY_ROWS }, { "assert_failure", ERRCODE_ASSERT_FAILURE }, { "internal_error", ERRCODE_INTERNAL_ERROR }, { "data_corrupted", ERRCODE_DATA_CORRUPTED }, { ...
P0001 抛出例外(RAISE EXCEPTION) XX 类 内部错误 XX000 内部错误(INTERNAL ERROR) XX001 数据损坏(DATA CORRUPTED) XX002 索引损坏(INDEX CORRUPTED)
EXCEPTIONWHENsqlstate'22012'THEN...WHENarray_subscript_errorTHEN... 同时,这些异常可以通过RAISE主动抛出。 DECLAREBEGINRAISE division_by_zero;-- 主动抛出除零异常EXCEPTIONWHENdivision_by_zeroTHENRAISE NOTICE'catch exception!'; RAISE;-- 再次抛出!END; ...
RAISE NOTICE 'Calling cs_create_job(%)',v_job_id;--v_job_id变量的值将替换format中的%。 RAISE EXCEPTION 'Inexistent ID --> %',user_id; 简单来说: --抛出异常RAISE EXCEPTION'你出问题了。该修修!';--使用SQLERRM 来显示错误信息。RAISE EXCEPTION'(%)', SQLERRM; ...
P0 类:PL/PGSQL 错误 P0000 PL/PGSQL 错误(PLPGSQL ERROR) P0001 抛出异常(RAISE EXCEPTION) XX 类:内部错误 XX000 内部错误(INTERNAL ERROR) XX001 数据损坏(DATA CORRUPTED) XX002 索引损坏(INDEX CORRUPTED) 上一篇:云数据库AnalyticDB PostgreSQL 服务协议下一篇:实例规格表 ...
createorreplacefunctionabort_any_command()returnsevent_triggeras$$beginif(user!='postgres')thenraiseexception'command % is disabled',tg_tag;endif;end;$$languageplpgsql; 以上函数判断当前操作用户是否为超级用户(postgres),如果不是则不允许执行任何 DDL 语句。
exception_name EXCEPTION 说明如下: (1)EXCEPTION用来指定声明的是异常,exception是一个自定义异常名 (2)这种声明的异常,可以通过RAISE语句来产生这个异常,且这种异常是跟预定义异常对应的Oracle的错误相连的 例1:声明一个名为e_TooManyAuthors的异常 DECLARE ...
使用raise notice 向终端输出一个消息,也有可能写到日志中(需要调整日志的保存级别)。 3.16.2 RAISE EXCEPTION postgres=# CREATE OR REPLACE FUNCTION f28() RETURNS VOID AS postgres-# $$ postgres$# DECLARE postgres$# v_int INTEGER := 1;