it-swarm.com.de

Exportieren der Ergebnisse einer Abfrage in SQL Developer, ohne die Abfrage zweimal ausführen zu müssen

Gibt es überhaupt eine Möglichkeit, die Ergebnisse einer Abfrage in Oracle SQL Developer zu exportieren, ohne die Abfrage zweimal ausführen zu müssen? Wenn Sie eine SQL-Abfrage im Arbeitsblatt ausführen und dann mit der rechten Maustaste auf das Fenster Ergebnismenge -> Daten exportieren -> Text klicken, wird die Abfrage ein zweites Mal ausgeführt.

5

Es gibt einige SQL Developer-spezifische Kommentare/"Hinweise". Zum Beispiel, wenn Sie das Folgende als Skript (F5) und nicht als Anweisung (Strg-Eingabetaste) ausführen:

select /*csv*/ * from table;

Sie erhalten die Ergebnisse bereits zum ersten Mal im CSV-Format. Sie können die Ausgabe sogar wie in SQL * Plus spoolen. Sie können also einfach den folgenden Codeblock als Skript ausführen (Zeilen und F5 auswählen) und eine CSV direkt in einem Durchgang erhalten:

spool C:\Users\XYZ\Desktop\my.csv
select /*csv*/ * from table;
spool off

Ab Version 4.1 müssen Sie nicht einmal den obigen Kommentar/"Hinweis" verwenden. Sie können einfach:

SET SQLFORMAT csv

Führen Sie dann Ihre Abfrage als Skript aus.

Weitere Optionen hier: http://www.thatjeffsmith.com/archive/2012/05/formatting-query-results-to-csv-in-Oracle-sql-developer/

7
Balazs Papp

Ja, aber es ist teuer. Wenn Sie alle Zeilen bis zum Client abrufen, verwendet der Export dieses Recordset für den Export.

Wenn es sich um eine lang laufende Abfrage einiger Zeilen handelt, ist das keine große Sache. Wenn es sich um eine lang andauernde Abfrage von mehr als Millionen Datensätzen handelt, können Sie die JVM erschöpfen oder den Netzwerk-Typ verärgern.

Ich spreche mehr darüber hier .

TL/DR;

Scrollen Sie zum Ende des Datasets im Raster. Sobald alle Zeilen vorhanden sind (nicht mehr abzurufen). Wenn Sie einen Export durchführen, werden die Daten von dort stammen, anstatt die Abfrage erneut auszuführen.

4
thatjeffsmith

Verwenden Sie sqlplus. Entwickeln Sie die Skripte in SQL Developer und laden Sie sie dann mit sqlplus.

0
Gerard