在plpgsql异常块中调用函数

时间:2018-01-09 13:47:51

标签: postgresql exception plpgsql

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

类似的东西:

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

1 个答案:

答案 0 :(得分:0)

你肯定可以:

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