2016-10-02 74 views
1

我想做相当于c或php fopen()和fwrite()。我不想将表转储到磁盘。我正在尝试在开发过程中进行一些调试日志记录。如何从PL/pgSQL写入磁盘上的文件?

+0

如果您需要查询一些统计数据,你应该看看:HTTPS://www.postgresql.org /docs/9.1/static/sql-explain.html –

+0

其实我试图追踪逻辑流程问题。我有许多这种类型的函数可以编写,如果我可以调试一些fwrite()语句,这样会很好,所以我可以看到我的代码中发生了什么的日志。 –

+0

对于通用的“写入文件”问题(不仅是日志文件),请参阅https://stackoverflow.com/q/48327289/287948 –

回答

1

您可以将RAISENOTICEDEBUG中的消息写入到数据库日志文件中的plpgsql函数或DO statement中。

+0

我花了一点时间来弄清日志,但这是完美的!谢谢欧文! :-) –

2

您可以使用postgres函数中的plpythonu f.open(),f.write(),f.close()写入文件。

语言扩展,将需要安装,

https://www.postgresql.org/docs/8.3/static/plpython.html

从邮件列表工作示例。 https://www.postgresql.org/message-id/flat/20041106125209.55697.qmail%40web51806.mail.yahoo.com#[email protected]

例如plpythonu

CREATE FUNCTION makefile(text) RETURNS text AS '\n 
o=open("/path/to/file") 
o.write(args[0]) 
o.close() 
return "ok" 
' LANGUAgE plpythonu; 

问候 蒂诺

+0

嗨@ Mokadillion,您可以在https://stackoverflow.com/q/48327289/287948获取赏金复制/粘贴回复 –