Экспорт Oracle sqlplus с использованием спула против экспорта разработчика sql

Я выполняю запрос, который дает 100 000 записей / строк данных. Используя команду Spool в sqlplus, я генерирую csv, в котором хранятся все выходные данные запроса.

Файл csv со 100 000 записей дает мне размер примерно 2,5 ГБ.

Тот же вариант экспорта, что и в sql-разработчике, который создает файл размером примерно 50 МБ.

Как уменьшить размер файла во время экспорта с помощью команды spool?


person user1830049    schedule 23.03.2017    source источник
comment
Они производят одинаковое количество строк в буферных файлах? («экспорт» означает что-то конкретное в Oracle ... вы действительно выполняете буферизацию из SQL Developer или экспортируете из меню правой кнопки мыши в сетке данных?). Одинаков ли формат выходных данных в обоих? Вы делали set trimspool on в SQL * Plus, и если нет, имеет ли это значение?   -  person Alex Poole    schedule 23.03.2017
comment
В дополнение к тому, что спросил Алекс, как вы генерируете CSV в sqlplus? Вы делаете select col1||','||col2||','||.... ?   -  person Boneist    schedule 23.03.2017
comment
Это то, что я имел в виду под «форматом выходных данных», но да, так понятнее. Формат экспорта из SQL Developer (если не используется спул) также имеет значение. Вопрос действительно может заключаться в том, «как мне выполнить буферизацию, поскольку CSV из SQL*Plus'. Wonder if colsep» используется вместо конкатенации, что приведет к потере много места?   -  person Alex Poole    schedule 23.03.2017
comment
Вы не указали версию Oracle. Но если вы используете 12.2, просто используйте CSV Markuo.   -  person BobC    schedule 23.03.2017
comment
покажите нам, КАК вы выполняете csv в обоих инструментах, иначе мы должны угадать   -  person thatjeffsmith    schedule 23.03.2017


Ответы (1)


Добавьте следующее в начале вашего скрипта

set term off
set feed off
set sqlformat csv
set heading off
person Jain26    schedule 29.08.2019