2017-12-18 4 views
0

Ich benutze Oracle SQL und möchte meine Daten über einen Link in eine Remote-DB einfügen.
ORA-01722 bei Einfügen über DB-Link

insert into [email protected] (<82 different columnNames>) 
values (<82 different values>); 

Soweit ich alle Datentypen geprüft, Spalten und Werte zusammenpassen, aber ich bekomme diese Fehlermeldung:

Errorcode 1722, SQL-Status 42000: ORA-01722: Invalid Number 
ORA-02063: previous line of MDB.IGM 

Ich würde schätzen es sehr, wenn mir jemand mit diesem Fehler helfen könnte .

V_ADITO_ONLINE_BEITRITT ist eine Ansicht, wenn das in irgendeiner Weise hilft.

Antwort

0

Source Orafaq.com

Ein ORA-01722 ("ungültige Nummer") Fehler tritt auf, wenn versucht wird, eine Zeichenkette in einer Reihe

zu konvertieren Wenn eine INSERT INTO tun ... VALUES (. ..) Eines der Datenelemente, die Sie einfügen möchten, ist eine ungültige Zahl.

Suchen und korrigieren Sie es. Wenn alle Zahlen gültig zu sein scheinen, haben Sie wahrscheinlich Ihre Spalten nicht in der richtigen Reihenfolge, und ein Element in der VALUES-Klausel wird in eine NUMBER-Spalte anstelle der erwarteten VARCHAR2-Spalte eingefügt. Dies kann passieren, wenn in einer Tabelle Spalten hinzugefügt oder entfernt werden.

Wenn Sie ein INSERT oder UPDATE mit einer Unterabfrage durchführen, die die Werte liefert. Offensichtlich gelten die vorstehenden Überlegungen auch hier. Was dies komplizierter macht, ist, dass die betreffende Zeichenkette als Zeile in einer Tabelle verborgen ist. Die Lösung besteht darin, die Zeile (oder Zeilen) zu identifizieren, die die nicht numerische Zeichenfolge enthält, und entweder die Daten zu ändern (falls ein Fehler vorliegt) oder der Unterabfrage etwas hinzuzufügen, um sie nicht auszuwählen. Das Problem besteht darin, die genaue Zeile zu identifizieren. Unter der Annahme, dass der fehlerhafte Datenwert ein alphabetisches Zeichen ist, kann man die folgende Abfrage verwenden:

SELECT ... WHERE UPPER(col) != LOWER(col) 

wo col die Spalte mit den schlechten Daten ist.

0

Versuchen Sie, die Hälfte der Feldnamen und Werte zu kommentieren und prüfen Sie, ob ORA-1722 noch existiert. Wenn Sie eine fehlerbehaftete Hälfte gefunden haben, versuchen Sie, die Hälfte davon zu kommentieren und so weiter. Lokalisieren Sie das genaue Feld & Wert, der ein Problem verursacht, überprüfen und reparieren Sie sie.

Verwandte Themen