Команда Spool: не выводить инструкцию SQL в файл
Я хочу вывести Query в CSV файл, и я использую ниже в качестве небольшого теста;
spool c:\test.csv
select /*csv*/ username, user_id, created from all_users;
spool off;
но на выходе есть фактический статус выбора в качестве первой строки
> select /*csv*/ username user_id created from all_users
USERNAME USER_ID CREATED
REPORT 52 11-Sep-13
WEBFOCUS 51 18-Sep-12
Есть ли способ предотвратить это? Я попробовал SET Heading Off подумать, что может это сделать, но это не изменилось. Я использую SQL Developer под управлением script.
Спасибо
Брюс
Ответы
Ответ 1
К сожалению, SQL Developer не полностью соблюдает команду set echo off
, которая (как представляется,) решит это в SQL * Plus.
Единственным обходным решением, которое я нашел для этого, является сохранение того, что вы делаете как script, например. test.sql
с:
set echo off
spool c:\test.csv
select /*csv*/ username, user_id, created from all_users;
spool off;
И затем от SQL Developer, только вызов этого script:
@test.sql
И запустите это как script (F5).
Сохранение как файла script не должно быть большим количеством трудностей в любом случае для чего-либо, кроме специального запроса; и запускать это с помощью @
вместо открытия script и запускать его напрямую - это только немного боль.
Немного поиска нашли такое же решение на форуме SQL Developer, и команда разработчиков предложила преднамеренное поведение для имитации того, что SQL * Plus делает; вам нужно запустить script с помощью @
там, чтобы скрыть текст запроса.
Ответ 2
set echo off
spool c:\test.csv
select /*csv*/ username, user_id, created from all_users;
spool off;
Ответ 3
Вы можете напрямую экспортировать результат запроса с опцией экспорта в результат grig. Этот экспорт имеет различные варианты экспорта. Я думаю, что это сработает.
Ответ 4
Выполнить запрос в TOAD или SQL DEVELOPER
---select /*csv*/ username, user_id, created from all_users;
Сохранить в формате .SQL в драйвере "C"
--- x.sql
выполнить команду
---- set serveroutput on
spool y.csv
@c:\x.sql
spool off;
Ответ 5
My shell script вызывает sql файл и выполняет его. Вывод spool имел запрос SQL в начале, за которым следует результат запроса.
Это не решило мою проблему:
set echo off
Это решило мою проблему:
set verify off