2017-03-02 5 views
1

Ich möchte mehrere Tabellen in eine Semikolon getrennte Datei mit SqlDeveloper (Version ist 4.1.5.21) exportieren.SqlDeveloper SPOOL: leere erste Zeile

Derzeit verwende ich

SET SQLFORMAT delimited 
spool ..\dir\table1.csv 
select * from table1; 
spool off; 

für jede Tabelle in einem Skript, das ist in Ordnung.

Das Problem ist, dass die resultierende Datei eine leere erste Zeile hat. Ist es irgendwie möglich, es zu löschen? Ich habe einige Nachforschungen angestellt und es sieht so aus, als wäre die Funktion, die das in SqlPlus erledigen würde, nicht in SqlDeveloper implementiert.

Ich habe auch versucht, das gleiche in SqlPlus zu erreichen, aber ich kam nicht einmal nahe an das Ergebnis, das von SqlDeveloper produziert wird.

Wenn es nicht möglich ist, diese leere Zeile mit Spool loszuwerden, gibt es irgendeine eingebaute SQL-Funktion, die ich verwenden könnte, um das resultierende Flag zu manipulieren, so dass ich keinen SqlDeveloper und dann ein Bash-Skript ausführen muss Dateien?

+0

Was ist das Ergebnis (Output) die Sie suchen? – BobC

+0

Ich sehe keine leere Zeile in 4.2.0.16.356 (gut, nicht an der Spitze; ich bekomme einen am Ende der Datei). Nicht sicher, ob das versionsspezifische Verhalten ist - machst du etwas anderes im Skript (oder in der Sitzung) vor dem, was du gezeigt hast; irgendwelche anderen 'set' Befehle? –

+1

OK, ich kann zwar in 4.1.15 duplizieren, also hat sich das Verhalten in 4.2.0 geändert (behoben?) (Noch Early Adopter). Ich habe keinen Weg gefunden, 4.1.15 gleich zu verhalten. Früher war es möglich, das mit 'set pagesize 0' zu umgehen, aber in dieser Version wird keine Null akzeptiert. (4,2.0 scheint übrigens auch die Funktionsweise von Spool geändert zu haben - das Ausführen des Codes direkt (nicht über ein separates @) nicht länger [echos die SQL-Anweisungen] (http://stackoverflow.com/q/19033943/266304), was nett ist). –

Antwort

0

Wenn jemand auf diese Frage stolpert:

Als Alex in den Kommentaren darauf hingewiesen, ist dies ein Bug in der Version 4.1.15 (und vielleicht auch frühere Versionen) von sqldeveloper. Um es loszuwerden, upgrade auf 4.2.0.

Wenn Sie, wie ich, aus irgendeinem Grund mit einer früheren Version stecken bleiben, können Sie sqlcl verwenden, das zusammen mit dem SqlDeveloper ausgeliefert wird, um Ihr Skript ohne die beschriebenen Probleme auszuführen.

Mein .sql-Skript sieht wie folgt aus:

SET ECHO OFF 
SET FEEDBACK OFF 
SET sqlformat delimited ; " " 

spool ..\relative\path.csv 
select * from table1; 

SPOOL OFF; 
QUIT;