Announcement

Collapse
No announcement yet.

Sqlldr und float problem

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

  • Sqlldr und float problem

    Hallo,
    ich lade mit einem ctl-File und dem sqlldr Daten in die DB.
    Unter anderem ist da auch ein FLOAT Feld (10 stellig).

    In der zu ladenden Datendatei ist das Feld wie folgt aufgeführt:
    +0000234,49 oder -0000045,53

    Die Daten mit dem "-"-Zeichen werden korrekt geladen, aber die mit dem "+"-Zeichen werden anscheinend von Oralce auf- bzw. abgerundet, erscheint also wie folgt in der DB: 234,00

    Der CTL-File sieht wie folgt aus (Auszug):
    insert into ............
    (
    ...
    betrag,
    ...
    )

    Irgendjemand eine Idee wieso das so ist?
    Danke & Viele Grüße
    Olli

  • #2
    Hat sicher nix mit der Kommazahl zu tun! Wie sieht deine Tabelle aus? Vielleicht wurde das Komma nicht richtig definiert….
    Wenn was schief gehen kann, dann geht es auch schief bzw. wenn man sich einen Fehler nicht erklären kann und dem nicht auf den Grund geht, hat das immer schlimme Folgen.

    Comment


    • #3
      In der Tabelle ist es ein ganz normales 10 stelliges "Float"-Feld (keine nachkommastellen wie z.B. bei "Number" angegeben), oder was meinst Du?

      Comment


      • #4
        Ich meinte die Definition in der Control-Datei, wie sieht es dort mit dem Komma aus? Willst du nicht vielleicht die Control-Datei posten?
        Wenn was schief gehen kann, dann geht es auch schief bzw. wenn man sich einen Fehler nicht erklären kann und dem nicht auf den Grund geht, hat das immer schlimme Folgen.

        Comment


        • #5
          Hi,
          hier die ctl-Datei.
          LOAD DATA
          INFILE 'buch.txt'
          BADFILE 'buch.bad'
          DISCARDFILE 'buch.dsc'
          INSERT
          INTO TABLE buchladen.buch
          FIELDS TERMINATED BY ";" OPTIONALLY ENCLOSED BY "'"
          TRAILING NULLCOLS
          (gebucht DATE "DD.MM.YYYY" "SUBSTR(:gebucht, 1, 10)"
          ,grund
          ,ist
          ,soll
          ,s_art
          ,fällig DATE "DD.MM.YYYY" "SUBSTR(:fällig, 1, 10)"
          ,von DATE "DD.MM.YYYY" "SUBSTR(:von, 1, 10)"
          ,bis DATE "DD.MM.YYYY" "SUBSTR(:bis, 1, 10)"
          ,ob
          ,u_nr
          ,u_art
          ,umb_ob
          ,org_id
          ,vers_ob)


          Es geht um die Felder IST und SOLL.

          Comment


          • #6
            Hallo,
            hat nicht vielleicht doch noch einer einen Lösungsansatz für mein Problem?
            Ich komme da im Moment nicht weiter....

            Danke & Viele Grüße
            Olli

            Comment


            • #7
              Hallo Oliver,

              ich habe mal versucht, Dein Problem nach zu vollziehen.
              D.h. ich habe eine Tabelle mit einer Float-Spalte angelegt und mit dem SQL*Loader einige Zahlenwerte (u.a auch Deine) importiert.
              Hierbei habe ich für die Float-Spalte der Tabelle keinen Wert für die Precision-Angabe festgelegt.
              Bei mir wurden alle Zahlen, egal welcher Art, genau so importiert, wie diese in der Quell-Datei angeben waren.

              Hier die Control-Datei für den SQL*Loader:
              LOAD DATA
              INFILE 'data.txt'
              truncate
              INTO TABLE AA
              FIELDS TERMINATED BY ";" OPTIONALLY ENCLOSED BY "'"
              TRAILING NULLCOLS
              (SPALTE1
              )

              Die Daten:
              123,6767
              98,04
              -0,3434
              +12,078
              6,005
              +0000234,49
              -0000045,53

              Vieleicht hilft es ja weiter.
              Viel Erfolgt,

              Grüße,
              André

              Comment


              • #8
                Vielen Dank für Deinen Versuch.
                Ich habe jetzt einfach anstatt "Float" ein "Number"-Feld gemacht und die Tabelle neu aufgebaut und die Daten neu geladen.
                Mit dem Number-Feld gibt es das Rundungsproblem nicht.
                Viele Grüße
                Olli

                Comment

                Working...
                X