Подтвердить что ты не робот

Команда 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.

Спасибо Брюс

4b9b3361

Ответ 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