【发布时间】:2013-11-13 07:31:37
【问题描述】:
我想将错误写入 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;
$$;
这东西工作正常,但我想知道是否有任何好的方法来捕获错误并将其记录到文件中?请提出建议。
【问题讨论】:
-
@fbynite :是的,但我不允许在服务器上启用日志收集器。
标签: sql postgresql error-logging