Zum Inhalt springen

ORA-01722: invalid number


lutzs

Empfohlene Beiträge

Hallo,

beim Einspielen in meine Datenbank bricht das Laden der Daten mit dem SQL- Loader ab: ORA-01722: invalid number.

Es handelt sich um ein Feld vom Typ NUMBER (15,2).

Die Werte in der .txt- Datei sind mit dem Trennet "." abgespeichert.

Aendere ich den Trenner von diesem Feld ab (beispielsweise 12.45 auf 12,45), so funktioniert die Einspielung.

Die Datenbank (Oracle) ist lokal installiert. Meine lokalen Settings habe ich ebenfalls schon geändert, der Parameter in init.ora existiert ebenfalls.

Woran könnte das noch liegen?

Vielen Dank!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Fehlermeldung an sich meint schonaml, dass der Wert den Du in das Feld impotieren möchtest keine Nummer ist. Das wird genau an dem Punkt als Dezimalzeichen liegen. Ich weiß nicht hundertprozentig ob es möglich ist, bei der Oracle-Datenbank ein Dezimaltrennzeichen vorzugeben. Ich meine aber schon.

Zur Zeit ist es so, dass die Datenbank als Dezimaltrennzeichen ein Komma erwartet. Da in Deiner Datei aber ein Punt steht kann die Datenbank den Wert nicht in eine Zahl umwandeln. Du mußt also entweder in Deiner Datei die Trennzeichen ändern oder mal schauen ob Du in der Datenbank den Parameter Dezimaltrennzeichen umgestellt bekommst. Dazu kann ich Dir aber leider keine näheren Tips geben...

Das hab ich immer machen lassen, wenn ich so ein Problem hatte. ;) ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

danke schonmal für die rasche Antwort.

Der NLS- Parameter kann in der init.ora auch nach der Installation geändert werden. Oder werden dann diese Aenderungen nicht wirksam?

Wir haben die Datenbank auch schon neu aufgesetzt und den Parameter einmal auf ",." und ".," gesetzt- ohne Erfolg.

Es wäre sehr viel Arbeit, in der Datei den Trenner von "." auf "," zu ändern. Es muss ja auch anders gehen.

Habe ich sonst keine andere Möglichkeit?

Danke,

Stephanie

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 5 Jahre später...
Den Parameter kann man auch bloederweise nach der Installation auch nicht mehr aendern.

Das stimmt nicht. Du kannst lediglich den Datenbankzeichensatz nicht mehr nachträglich ändern. Sprich aus einer Datenbank mit einem 1-Byte Encoding plötzlich eine DB zu machen die alles in UTF8 abspeichert ist nicht möglich.

Wir haben die Datenbank auch schon neu aufgesetzt und den Parameter einmal auf ",." und ".," gesetzt- ohne Erfolg.

Das liegt daran, dass die NLS Parameter Clientparameter sind. D.h. der Client der sich zu DB verbindet bestimmt selbst welche NLS Einstellungen er verwendet - alle andere wär auch nicht wirklich praktikabel. Wichtig ist allerdings, dass mindestens der NLS_LANG Parameter als Umgebungsvariabel gesetzt ist erst dann werden die anderen NLS Einstellungen vom Client (sqlplus, sqlloader etc) verwendet.

Mehr Infos gibt's (wie immer) in der Doku:

3 Setting Up a Globalization Support Environment

Dim

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...