2016-10-02 78 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獲取賞金複製/粘貼回覆 –