2015-09-14 19 views
1

我在postgresql中有一个示例函数,它会引发一个通知。写邮件给postgresql的RAISE NOTICE

样的功能 -

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; 

有什么办法来更新上面的函数,使整个通知保存到一个文件?

就像我打“raise raise_test();”并且在我的特定位置,我将打印一个out.txt文件。

PS。我HV试图插入通知到一个临时表中,然后使用 -

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

回答

1

答复取决于您的可能性。你不能用通常的工具来完成这项工作。有两种可能 - 首先 - 使用一些PostgreSQL扩展,可以创建文件并写入文件,如Orafce,或者您可以编写自己的C扩展,它将使用PostgreSQL log hook - 然后您可以按照自己的意愿进行操作。

+0

我想实现的是让RAISE NOTICE转到一个文件,而不是显示在屏幕上。我已经完成了将临时表存储在临时表中然后将其打印到平面文件。任何方式来跳过临时表部分?我手中只有pgadmin和Postgres db。 – Soumyadeep

+0

你可以执行RAISE NOTICE来登录。但它是全部,你可以不用C语言编程 –