2011-10-05 138 views
1

我有一個擁有超過3000萬條記錄的oracle表,我需要將所有的數據放入文件並存儲它..任何人都可以建議我什麼是最簡單的方法這樣做,我必須使用什麼樣的文件來存儲所有的數據。如果有辦法,我可以把數據放入多個文件中,這也可以起作用。你可以告訴我手動或程序方法。謝謝Oracle Table百萬行,拉入並保存到文件中

回答

1

問湯姆有一個答案http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::p11_question_id:88212348059

而且,你能做到這一點在SQL * Plus通過在http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:25323432223677在卷軸上的東西做一個選擇與閥芯(從shell腳本)

sqlplus /nolog <<EOF 
conn /as sysdba 
set pagesize 0 heading off feedback off verify off echo off trimspool on 
spool test.log 
select 'dsmc inc "'||file_name||'">>hot_WISDOM_$BCKNAME.log' from dba_data_files 
where rownum<5; 
spool off; 
exit 
EOF 

更多信息

該頁面是我在上面找到的片段。

您將希望用您的用戶名/密碼替換連接詳細信息。

1

從Oracle 10g開始,您可以創建一個包含ORGANIZATION EXTERNAL的新表,並從原始表中插入INSERT記錄。 See this example來自Oracle 10gR2文檔。

+0

thano Benoit但我使用的是oracle 9i –

1

存儲數據的最簡單格式之一是逗號分隔值(.csv)。只要您在解析分隔符時知道分隔符,就可以將分隔符定義爲任何字符(逗號是默認值)。 (例如,〜字符將是一個很好的決定)。通常這種格式可以很容易地在電子表格程序(如Excel)中打開。它也可以輕鬆解析,重新插入到您選擇的數據庫中。

從Oracle導出,你可以這樣做:

spool backup.csv; 
select column1||','||column2||','|| ... from table; 
spool off; 

出口後,這裏是在Perl,以CSV文件時資源:

http://perlmeme.org/tutorials/parsing_csv.html

阿帕奇公地有用於java的大型圖書館:

http://commons.apache.org/sandbox/csv/apidocs/org/apache/commons/csv/CSVParser.html