lutzs Geschrieben 26. August 2002 Geschrieben 26. August 2002 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!
DooleyDoo Geschrieben 26. August 2002 Geschrieben 26. August 2002 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. ;)
Denise Geschrieben 26. August 2002 Geschrieben 26. August 2002 Hi, an dem NLS liegts hoechstwahrscheinlich. Den Parameter kann man auch bloederweise nach der Installation auch nicht mehr aendern. Gruesse Denise
lutzs Geschrieben 26. August 2002 Autor Geschrieben 26. August 2002 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
uwes Geschrieben 10. September 2007 Geschrieben 10. September 2007 eine möglichkeit wäre das zielfeld der import tabelle als varchar2 zu erstellen und danach eine procedur starten die entsprechende änderungen an den werten vornimmt z.b. insert into zieltabelle (feld_1.... select decode (zahl_mit_punkt, '.',',',null) from import_table
P3AC3MAK3R Geschrieben 10. September 2007 Geschrieben 10. September 2007 Ich hatte mal ein ähnliches Problem und meine es damals dadurch gelöst zu haben, daß ich die Variable NLS_NUMERIC_CHARACTERS angepaßt hatte. Hier ist ein passender Thread aus dem Oracle-Forum zu dem Thema: SQL*Loader problem: ORA-01722: invalid ...
dr.dimitri Geschrieben 10. September 2007 Geschrieben 10. September 2007 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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden