Команда 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; вам нужно запустить скрипт с @
там тоже, чтобы скрыть текст запроса.
мой сценарий оболочки вызывает файл 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;