在 plpgsql 异常块中调用函数



是否可以从WHEN OTHERS THEN块中调用函数?

像这样:

EXCEPTION
    WHEN OTHERS THEN
        my_fnc('a key ID', 'Custome message', SQLERRM||' - '||SQLSTATE);

你当然可以:

t=# do $$ begin
perform 1/0;
exception when others then perform to_json(SQLERRM||' - '||SQLSTATE);
end;
$$;
DO

但是仅仅调用 fn(( 是没有意义的,除非它执行一些实际操作,所以 Ritcher 示例:

t=# do $$ begin
perform 1/0;
exception when others then raise info '%', to_json(SQLERRM||' - '||SQLSTATE);
end;
$$;
INFO:  "division by zero - 22012"
DO

最新更新