Comando di spool: non inviare l’istruzione SQL al file

Sto volendo generare una Query in un file CSV e sto usando il sotto come un piccolo test;

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

ma l’uscita ha l’effettiva selezione di stato come prima riga

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

C’è un modo per impedirlo? Ho provato SET Heading Off pensando che potesse farlo, ma non è cambiato. Sto usando SQL Developer in esecuzione come script.

Grazie Bruce

Sfortunatamente SQL Developer non onora completamente il comando set echo off che (sembrerebbe) risolvere questo in SQL * Plus.

L’unica soluzione che ho trovato per questo è salvare ciò che stai facendo come script, ad esempio test.sql con:

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

E poi da SQL Developer, hai solo una chiamata a quello script:

 @test.sql 

E eseguilo come script (F5).

Salvare come file di script non dovrebbe essere molto difficile per qualcosa di diverso da una query ad hoc; ed eseguirlo con @ invece di aprire lo script ed eseguirlo direttamente è solo un po ‘un problema.


Un po ‘di ricerca ha trovato la stessa soluzione sul forum degli sviluppatori SQL , e il team di sviluppo suggerisce che è un comportamento intenzionale simulare ciò che fa SQL * Plus; è necessario eseguire uno script con @ anche qui per hide il testo della query.

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

Lo script della mia shell chiama il file sql e lo esegue. L’output di spool aveva la query SQL all’inizio seguita dal risultato della query.

Questo non ha risolto il mio problema:

 set echo off 

Questo ha risolto il mio problema:

 set verify off 

È ansible esportare direttamente il risultato della query con l’opzione di esportazione nel risultato grig. Questa esportazione ha varie opzioni da esportare. Penso che questo funzionerà.

Esegui la query in TOAD o SQL DEVELOPER

 ---select /*csv*/ username, user_id, created from all_users; 

Salva in formato .SQL nell’unità “C”

 --- x.sql 

eseguire il comando

 ---- set serveroutput on spool y.csv @c:\x.sql spool off;