2012-09-06 41 views
1

是否有任何方法將假脫機.sql腳本輸出到表?Oracle假脫機腳本輸出到表

一個解決辦法我能想到的是閥芯與反饋動態創建一個插入語句腳本文件系統,然後運行這個對你的架構。

但是,我想知道是否有更好的解決方案,直接將數據緩存到已存在的表或已存在的系統表中並存儲此信息(例如腳本文件路徑,執行日期,執行結果; 1 row inserted,commit等..

感謝

+0

爲什麼不使用PL/SQL? –

+0

這是通過打開審覈實例來審計任何活動的更好方法。您無法直接將sql * plus消息後臺打印到表中。 –

+0

@ user1651063您希望這些數據持續多久?以後如何操作?正如羅伯特所說,PLSQL可能是更好的解決方案。或者我建議可能使用臨時表。 –

回答

1

寫假脫機文件到您已經定義了一個Oracle目錄的目錄。 編寫一個文件名和目錄名作爲輸入的程序,並且將文件寫入爲CLOB成表。

spool test.txt 

your code 

spool off 

exec write_spool_file_to_database_proc('test.txt','YOURDIR'); 

看看這個關於如何將文件寫入到一個表CLOB列。

http://www.roeptoeter.nl/?p=254

+0

+1代碼鏈接。作爲一個思想實驗,假設數據庫出現故障。如何以及將在何處記錄結果連接錯誤? –

+0

它仍然會在文件系統中;-) –

+0

我知道有些人可能不同意我的說法,但是這是一個原因,我喜歡記錄到平面文件,而不是試圖登錄到數據庫。在不尋常的或異常的情況下,這是我想要登錄的主要原因之一,無論如何你必須尋找合適的文件(並希望它未被後續操作等等所覆蓋)。我發現將文本追加到平面文件更簡單。 –