Oracle Table миллионы строк, вытащить и сохранить в файл - PullRequest
1 голос
/ 05 октября 2011

У меня есть оракульная таблица, которая содержит более 30 миллионов записей, мне нужно собрать все эти данные в файл и сохранить их. Кто-нибудь может мне подсказать, какой самый простой способ сделать это и какой файл мне нужно сделать?использовать для хранения всех этих данных.Если есть способ, которым я могу поместить данные в несколько файлов, которые тоже будут работать. Вы можете сказать мне ручной или программный метод.Спасибо

Ответы [ 3 ]

1 голос
/ 05 октября 2011

Один из самых простых форматов для хранения данных - это значение через запятую (.csv). Вы можете определить свой разделитель как любой символ (запятая по умолчанию), если вы знаете разделитель, когда анализируете его. (Например, символ ~ будет хорошим решением). Обычно этот формат можно легко открыть в программе для работы с электронными таблицами, такой как Excel. Он также может быть легко проанализирован для повторной вставки в базу данных по вашему выбору.

Чтобы экспортировать из оракула, вы можете сделать что-то вроде:

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

После экспорта вот ресурс для работы с CSV-файлами в Perl:

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

Apache commons имеет отличную библиотеку для Java:

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

1 голос
/ 05 октября 2011

Спроси у Тома есть ответ http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::p11_question_id:88212348059

Кроме того, вы можете сделать это в SQL * Plus, выполнив выборку с помощью очереди (из сценария оболочки)

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

Больше информации о катушке на http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:25323432223677

На этой странице я нашел этот фрагмент выше.

Вы хотите заменить информацию о соединении на ваше имя пользователя / pw.

1 голос
/ 05 октября 2011

Начиная с Oracle 10g, вы можете создать новую таблицу с ORGANIZATION EXTERNAL и INSERT-записями из исходной таблицы. См. Этот пример из документации по Oracle 10gR2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...