【问题标题】:Write to a file from RAISE NOTICE in postgresql从 postgresql 中的 RAISE NOTICE 写入文件
【发布时间】:2015-09-15 02:45:22
【问题描述】:

我在 postgresql 中有一个示例函数,它会引起注意。

示例函数 -

CREATE OR REPLACE FUNCTION raise_test() RETURNS TEXT AS
$body$
DECLARE
 retStr TEXT;
BEGIN
    SELECT current_timestamp into retStr;
    RAISE NOTICE '%', retStr ;
    RETURN retStr;
END;
$body$
LANGUAGE plpgsql;

有没有什么办法可以更新上面的函数,让整个通知存储到一个文件中?

如果我点击“call raise_test();”在我的特定位置,我将有一个 out.txt 打印整个通知。

PS。我尝试将通知插入到临时表中,然后使用 -

COPY (select * from temp) TO '\home\pgsql\out.txt'

【问题讨论】:

    标签: postgresql plpgsql notice raise


    【解决方案1】:

    回复取决于您的可能性。您无法使用常用工具完成这项工作。有两种可能性 - 首先 - 使用一些 PostgreSQL 扩展来创建文件并写入文件,如Orafce 或者你可以编写自己的 C 扩展来使用 PostgreSQL log hook - 然后你可以做你想做的事。

    【讨论】:

    • 我想要实现的是让 RAISE NOTICE 转到文件,而不是显示在屏幕上。我已将 NOTICE 存储在临时表中,然后将其打印到平面文件中。有什么方法可以跳过临时表部分?我手里只有 pgadmin 和 Postgres db。
    • 您可以强制执行 RAISE NOTICE 来记录。但这就是全部,无需使用 C 编程即可完成
    猜你喜欢
    • 1970-01-01
    • 2016-02-05
    • 2020-04-21
    • 1970-01-01
    • 2021-04-14
    • 2022-01-19
    • 2022-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多