2011-10-05 38 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