2017-03-29 3 views
0

Ich versuche Abfrageergebnis zu drucken. Hier ist die Oracle-SQL-Skript:Wie Spool Abfrageergebnisse in Oracle

set linesize 32767; 
set pagesize 0; 
set newpage 0; 
set space 0; 
set echo off; 
set feedback off; 
set verify off; 
set heading off; 
set sqlprompt ''; 
set trimspool on; 
set headsep off; 

spool C:\asd.tmp 
SELECT PROCESSNAME FROM ACTIVEPROCESSLIST ORDER BY PROCESSID; 
spool off; 

Aber der Inhalt von "asd.tmp" ist, dass:

SELECT PROCESS VON ACTIVEPROCESSLIST ORDER BY ProcessId

Er druckt nur Abfragetext nicht das Ergebnis davon. Wie kann ich Abfrageergebnisse spoolen?

HINWEIS: Ich verwende "sqldeveloper-4.0.3.16.84-x64" und es als Administrator ausgeführt. Auch das Festlegen der oben angegebenen Eigenschaften ist möglicherweise nicht sinnvoll. Ich habe einige Kombinationen von ihnen ausprobiert und nur spool-Befehle ohne Einstellungen ausgeführt.

Jede andere Lösung, die ich in C++ ausführen kann, ist auch für mich geeignet.

+0

Gibt die Abfrage wirklich irgendetwas zurück? – Nitish

+0

Ja, es gibt 6 Zeilen zurück. – Alperen

+2

Version 4.0.3 von SQL Developer ist ziemlich alt und seine Unterstützung SQL \ * Plus-Befehle war nicht so robust wie es heute ist. Holen Sie sich Version 4.2 und versuchen Sie es erneut - es ist viel näher an 100% SQL * Plus-Befehl/Skript-Engine-Unterstützung. Zum Beispiel unterstützt v4.0 nicht PAGESIZE 0. – thatjeffsmith

Antwort

0

Es in that link eine alternative Möglichkeit ist. Ich empfehle es. Es funktioniert nicht so schnell wie eine Spool-Lösung, aber es funktioniert zumindest in meinem Projekt.

Es gab ein Problem über den alternativen Weg, aber die Antwort in this stackoverflow question funktioniert gut. Ich benutze es jetzt.

0

können Sie die Befehlszeile/sqlplus verwenden. versuchen Sie Ihr Skript als Datei speichern, dann in der Befehlszeile:

sqlplus -s [username]/[password]@[sid] @file_path > output.txt 
+0

Das funktioniert, ich habe es versucht. Aber es druckt alle Daten in die Befehlszeile, obwohl meine Skriptdatei "set echo off" enthält und es viel Zeit in großen Tabellen benötigt. – Alperen