Oracle
如何將 Oracle 數據庫表解除安裝到 csv 文件中?
我需要從 Oracle 11g 第 1 版數據庫中檢索某些數據並將其作為一個或多個 CSV 文件提供。數據駐留在多個表和/或視圖中。所有這些都應該通過命令行工作。最好的方法是什麼?
阿倫,
現在 sqlcl 可從Oracle SQL Developer 4.1 EA2 (4.1.0.18.37) 獲得 ,您可以像使用舊的著名 sqlplus 一樣使用它。sqlcl 有 csv 的輸出格式設置
set sqlformat csv spool x.csv select * from yourtable[s]; spool off
有關 sqlcl 的更多資訊,請查看Kris 的部落格
在 sqlcl 之前最簡單的是使用 APEX 並將報告導出到 csv。在普通的舊 sqlplus 中,您可以使用
set lines 9999 -- the appropriate size set head off -- no header lines set colsep ';' --column separator to ; set pages 0 -- no pages set feed off select your data; spool to_tofile / spool off
如果要將結果寫入應用程序伺服器或客戶端,則此方法效果最佳。如果必須將它們寫入數據庫伺服器,utl_file 可能是更好的選擇。
羅納德。
您應該查看內置的UTL_FILE包。您可以通過多種方式使用它。
- 您可以在使用 UTL_FILE 包寫入任意數量文件的包中編寫任意數量的過程。然後可以從包括 SQL*Plus 在內的幾乎任何應用程序呼叫這些過程。
- 您可以編寫一個 PL/SQL 腳本來完成相同的工作,並通過在命令行上指定 @scriptname 從 SQL*Plus 命令行本身呼叫該腳本。
- 您可以將使用 UTL_FILE 的塊直接粘貼到 SQL*Plus 中,但這只能用於一次導出,即使這樣也可能不是最佳途徑。
在最簡單的情況下,使用 UTL_FILE 的文件導出將由對FOPEN的呼叫、對PUT_LINE的一次或多次呼叫以及對FCLOSE的呼叫組成。