Announcement

Collapse
No announcement yet.

SQLPlus Format Fehler beim erstellen einer .CSV

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SQLPlus Format Fehler beim erstellen einer .CSV

    Hallo,

    ich habe eine Abfrage die unter SQLPlus ausgeführt wird und eine .CSV Datei erstellt.
    Bemerkt habe ich das einige Spalten-Überschriften abgeschnitten werden und diese genau die Länge haben was der MAX größte Inhalt dieser ist.
    Das ist aber nicht bei allen Spalten so.

    Wieso kommt dieser Fehler zustande und wie kann ich diesen beheben?
    Es sind insgesammt 75 Spalten in der Ausgabe.

    Anbei meine Einstellungen:

    Code:
    set echo off
    set feedback off
    set linesize 30000
    set pagesize 50000
    set sqlprompt ''
    set trimspool on
    set heading on
    set verify off
    set underline off
    set colsep ';'
    column sd new_value sd
    select to_char(sysdate, 'YYYYMMDD') sd from dual ;
    spool on
    spool File.csv;
    
    -- SQL QUERY
    
    spool off
    Vielen Dank vorab.
    Grüße

  • #2
    Originally posted by dotcool View Post
    Hallo,

    Bemerkt habe ich das einige Spalten-Überschriften abgeschnitten werden und diese genau die Länge haben was der MAX größte Inhalt dieser ist.
    Das ist aber nicht bei allen Spalten so.

    Wieso kommt dieser Fehler zustande und wie kann ich diesen beheben?

    Code:
    set echo off
    column sd new_value sd
    Du kannst mit der Column Anweisung, die Du bereits verwendest auch die Breite angeben oder Header splitten uvam.
    zb.
    Code:
    COLUMN sd FORMAT A20
    Such mal nach "sqlplus ausgabe formatieren"
    Da gibt es dutzende Möglichkeiten.
    Gruß, defo

    Comment


    • #3
      Hallo @defo,

      muss ich das für alle Spalten so machen?
      Gibt es eine möglichkeit das Global für alle einzustellen?

      Ich habe auch noch bemerkt das sehr viele leerzeilen zwischen den Spalten ist (SpalteA ; SpalteB ; usw.)
      Kann man dies auch einstellen das es keinen "Leerzeichen" gibt?

      Grüße

      Comment


      • #4
        Originally posted by dotcool View Post
        muss ich das für alle Spalten so machen?
        Gibt es eine möglichkeit das Global für alle einzustellen?

        Ich habe auch noch bemerkt das sehr viele leerzeilen zwischen den Spalten ist (SpalteA ; SpalteB ; usw.)
        Kann man dies auch einstellen das es keinen "Leerzeichen" gibt?
        Du musst das Format nur da einstellen, wo der Standard nicht ok ist für Dich.
        Global weiß ich dazu keine Einstellung.

        Du kannst versuchen mit
        >set trimspool on

        zu arbeiten .
        andere typische settings sind.

        set echo off
        set feedback off
        set linesize xy
        set pagesize 0
        set sqlprompt ''


        wenn Du ganz auf Leerzeichen verzichten willst, kannst Du auch alle Felder konkatenieren.
        Code:
        select feldname1||';'||feldname2 ..
        Die Header musst Du dann aber natürlich separat erzeugen und alle vorher verwendeten format settings sind natürlich futsch. Alle nicht-Text-Felder werden dabei implizit nach Text konvertiert, was u.U. eine unerwünschte Formatierung erzeugt. Das muss dann durch explizite konvertierung mit Formatmodell ersetzt werden, falls es einem nicht gefällt.
        Gruß, defo

        Comment


        • #5
          Ok. Vielen Dank für die Infos .

          Comment

          Working...
          X