1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

SQLPlus-Spool ausgabe Optimieren

Dieses Thema im Forum "Relationale Datenbanksysteme" wurde erstellt von Hans-Schmdt-Peter, 11. Dezember 2007.

  1. Hans-Schmdt-Peter

    Hans-Schmdt-Peter Grünschnabel

    Hi,

    und zwar geht es darum das ich mir eine Batch Datei mit dem dazugehöriogen Select-Statment gebastelt habt. Die Daten aus dem Select-Statment werden via Spool in eine ".csv" Datei ausgegeben.
    Soweit funktionier auch alles, mein Problem ist allerdings (es sind insgesamt 3 Select-Statments), dass bei der Ausgabe in die ".csv" Datei die erste Zeile leer ist und nach dem ersten und zweiten Select-Statment auch jeweils eine leere zeile ist.
    Also:

    .................................(leer)
    Daten
    Daten
    Daten (ende erstest Select-Statment)
    .................................(leer)
    Daten
    Daten
    Daten (ende zweites Select-Statment)
    .................................(leer)


    Da die Daten aber später mit einem andere Programm eingelesen werden sollen müssen die leeren zeilen irgendwie weg.
    Ich hab es jetzt mit verschiedenen "set" funktionen versucht aber bin bis jetzt noch nicht zum gewünschten Ziel gekommen.

    Ich hoffe einer von euch hat eine gute Idee für mich.
    Danke schonmal


    MFG

    Hans
  2. Hans-Schmdt-Peter

    Hans-Schmdt-Peter Grünschnabel

    Hab die 3 Statments jetzt mit "Union" verbunden jetzt ist nur nach das Problem mit der ersten Leerzeile.
  3. Exceptionfault

    Exceptionfault Erfahrenes Mitglied

    In dem folgenden Beispiel klappt es so wie gewünscht:

    Code (Text):
    1.  
    2. set pagesize 0
    3. set heading off
    4. set linesize 1024
    5. set echo off
    6. set feed off
    7. set tab off
    8. set trimout on
    9. set trims on
    10.  
    11. spool test.txt
    12.  
    13. select username || ',' || user_id from all_users order by 1;
    14.  
    15. select username || ',' || user_id from all_users order by 1;
    16.  
    17. select username || ',' || user_id from all_users order by 1;
    18. spool off
    19.  
  4. Hans-Schmdt-Peter

    Hans-Schmdt-Peter Grünschnabel

    Hat geklappt super vielen Dank =)
  5. MPr

    MPr Erfahrenes Mitglied

    je nach Anzahl der Sätze, die per spool gelesen werden sollen, (und unter Berücksichtigung der Netzwerkstruktur) würde ich noch ein

    set arraysize 1000

    dazunehmen, um die Kommunikation zwischen Server und Client zu optimieren. Die arraysize bestimmt, wieviele rows pro fetch-Zugriff gelesen werden. Mit dem Default-Wert (meiner Erinnerung nach 15 für sqlplus) bekommt man unter Umständen recht massive Probleme mit SQL*Net Waits. Eine weitere Optimierungsmöglichkeit für die Spool-Performance wäre die Unterdrückung der Bildschrimausgabe für die Spool-Operation (set termout off).

    Gruß

    MP

Diese Seite empfehlen