0

我想将错误写入 Postgresql 中的文件,因此每当函数中发生错误时,它都会写入文件,因此我捕获了错误并将错误传递给另一个函数,并将该函数的返回写入文件. 下面是一个示例函数,

CREATE OR REPLACE FUNCTION test(TEXT)
RETURNS VOID
STRICT
LANGUAGE plpgsql
AS $$
declare STATEMENT TEXT;
declare sql_code TEXT;
BEGIN

BEGIN
EXECUTE 'DROP TABLE ' || $1;
EXCEPTION WHEN others THEN
sql_code := SQLERRM;
     STATEMENT := 'COPY (select * from test1('''||sql_code||''')) to ''/tmp/errors.txt''';
     EXECUTE STATEMENT;
RETURN;
END;
RAISE NOTICE 'Dropped table successfully %', $1;
RETURN;
END;
$$;

CREATE OR REPLACE FUNCTION test1(TEXT)
RETURNS TEXT
STRICT
LANGUAGE plpgsql
AS $$
declare error TEXT;
BEGIN
error :=  $1;
RETURN STATEMENT;
END;
$$;

这东西工作正常,但我想知道是否有任何好的方法来捕获错误并将其记录到文件中?请建议。

4

1 回答 1

0

更改日志记录级别会更好,尽管可能有充分的理由来防止这种情况发生。

如果您无法在 pl/perlu 或 pl/python 中编写辅助日志记录例程,则可以写入文件。请注意不要覆盖您的数据文件 Oo....

于 2013-12-08T10:41:14.680 回答