SQLDEVELOPER SPOOL: пустая первая строка


Я хочу экспортировать несколько таблиц в файл, разделенный точкой с запятой, используя SqlDeveloper (версия 4.1.5.21).

В настоящее время я использую

SET SQLFORMAT delimited
spool ..dirtable1.csv
select * from table1;
spool off;

Для каждой таблицы в скрипте, что нормально.

Проблема заключается в том, что результирующий файл имеет пустую первую строку. Можно ли его как-то удалить? Я провел небольшое исследование, и похоже, что функция, которая будет заботиться об этом в SqlPlus, не реализована в SqlDeveloper.

Я также пытался выполнить то же самое в SqlPlus, но я даже не приблизился к результату, который производит SqlDeveloper.

Если невозможно избавиться от этой пустой строки с помощью spool, есть ли какая-либо встроенная функция sql, которую я мог бы использовать для манипулирования результирующим флагом, чтобы мне не пришлось запускать SqlDeveloper, а затем сценарий bash, чтобы получить правильные файлы?

1 2

1 ответ:

Если кто-нибудь наткнется на этот вопрос:

Как отметил Алекс в комментариях, это ошибка в версии 4.1.15 (и, возможно, более ранних версиях) SqlDeveloper. Чтобы избавиться от него, обновите его до версии 4.2.0.

Если вы, как и я, по какой-то причине застряли с более ранней версией, вы можете использовать sqlcl, который поставляется вместе с SqlDeveloper, чтобы выполнить свой сценарий без описанных проблем.

Мой .SQL скрипт выглядит так:

SET ECHO OFF
SET FEEDBACK OFF
SET sqlformat delimited ; " "

spool ..\relative\path.csv
select * from table1;

SPOOL OFF;
QUIT;