lutzs Geschrieben 26. August 2002 Teilen 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! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DooleyDoo Geschrieben 26. August 2002 Teilen 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. ;) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Denise Geschrieben 26. August 2002 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lutzs Geschrieben 26. August 2002 Autor Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
uwes Geschrieben 10. September 2007 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
P3AC3MAK3R Geschrieben 10. September 2007 Teilen 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 ... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 10. September 2007 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.