請幫助我創建一個過程,將數據從oracle數據庫導出到指定路徑爲.csv文件從另一個表中獲取學習名稱。創建.csv輸出的步驟
QUERY:select * from enrollment where study_name = 'FTY67' ;
我必須與所有studynames同一個數據庫的另一個表(研究)。
有沒有什麼方法可以創建程序,從研究表中取出學習名稱並重復此過程爲所有研究創建.csv文件?
閱讀一些在互聯網上的文章,但沒有發現任何與此相關的內容。 請幫忙。
請幫助我創建一個過程,將數據從oracle數據庫導出到指定路徑爲.csv文件從另一個表中獲取學習名稱。創建.csv輸出的步驟
QUERY:select * from enrollment where study_name = 'FTY67' ;
我必須與所有studynames同一個數據庫的另一個表(研究)。
有沒有什麼方法可以創建程序,從研究表中取出學習名稱並重復此過程爲所有研究創建.csv文件?
閱讀一些在互聯網上的文章,但沒有發現任何與此相關的內容。 請幫忙。
你應該看看spool和set命令。由於數據庫通常在遠程服務器上運行,因此無法將文件寫入本地計算機。爲了實現這個目標,yu必須在終端中禁用某些特性的情況下編寫一個sql,然後將結果緩存到可以訪問的文件中。
像這樣的東西可能讓你開始:
set term off colsep ";" pause off
spool myfile
select * from x;
spool off
exit
有關的選項概述您可以用SET使用參考Oracle文檔瀏覽:http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch12040.htm
有了正確的命令集,你可以創建CSV文件。
上述設置命令只是您可能需要的一些命令,但您可能需要addtional參數才能使CSV可用。
最好在file.sql寫這篇文章,並用sqlplus運行它:
sqlplus [email protected] @file
中所引用的線程答案只有有限的用途,因爲包必須由管理員啓用,通常是由於安全原因而禁用。然而有一種方法可以在客戶端使用常規的sql命令來做到這一點,因爲這可能是更常見的szenario。 – Devolus 2013-04-22 11:00:02
如果您想要回答重複,請立即前往@Devolus。在我的公司,我們每天使用UTL_FILE數百次,而沒有人使用spool來做到這一點......我不確定這是「更常見」。 – Ben 2013-04-22 12:48:19
在你的公司你有權訪問服務器? – Devolus 2013-04-22 14:29:24