Команда Spool: не выводить инструкцию SQL в файл

Я хочу вывести запрос в файл CSV и использую ниже в качестве небольшого теста;

spool c:test.csv 
select /*csv*/ username, user_id, created from all_users;
spool off;

но вывод имеет фактическое состояние select в качестве первой строки

> select /*csv*/ username    user_id     created from all_users
USERNAME    USER_ID CREATED
REPORT  52  11-Sep-13
WEBFOCUS    51  18-Sep-12

есть ли способ предотвратить это? Я попытался уйти, думая, что это может сделать, но это не изменилось. Я использую SQL Developer в качестве сценария.

спасибо Брюс!--3-->

5 ответов


к сожалению, разработчик SQL не полностью соблюдает set echo off команда, которая (кажется) решит это в SQL * Plus.

единственное решение, которое я нашел для этого является сохранить то, что вы делаете, а скрипт, например,test.sql С:

set echo off
spool c:\test.csv 
select /*csv*/ username, user_id, created from all_users;
spool off;

и затем от разработчика SQL, только вызовите этот скрипт:

@test.sql

и запустите это как скрипт (F5).

сохранение в виде файла скрипта не должно быть большой трудностью в любом случае для чего-либо, кроме специальный запрос; и запуск этого с @ вместо того, чтобы открывать скрипт и запускать его напрямую, это только немного больно.


немного поиска нашли то же самое решение на форум разработчиков SQL, и команда разработчиков предполагает, что намеренное поведение имитирует то, что делает SQL * Plus; вам нужно запустить скрипт с @ там тоже, чтобы скрыть текст запроса.


set echo off
spool c:\test.csv 
select /*csv*/ username, user_id, created from all_users;
spool off;

мой сценарий оболочки вызывает файл sql и выполняет его. Выход золотника было SQL-запрос на начало и результат запроса.

это не решило мою проблему:

set echo off

это решило мою проблему:

set verify off

вы можете напрямую экспортировать результат запроса с опцией экспорта в результирующем Григе. Этот экспорт имеет различные варианты экспорта. Думаю, это сработает.


выполнить запрос в 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;