通过 DB 插入时出现 ORA-01722 link

ORA-01722 at Insert via DB link

我正在使用 oracle SQL 并希望通过 link 将我的数据插入到远程数据库中。

 insert into V_ADITO_ONLINE_BEITRITT@MDB.IGM (<82 different columnNames>)
 values (<82 different values>);

据我检查所有数据类型、列和值匹配,但我收到此错误:

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

如果有人能帮我解决这个错误,我将不胜感激。

V_ADITO_ONLINE_BEITRITT 是一个观点,如果有任何帮助的话。

Source Orafaq.com

尝试将字符串转换为数字时发生 ORA-01722 ("invalid number") 错误

执行 INSERT INTO ... VALUES (...) 您试图插入的数据项之一是无效数字。

找到并更正它。 如果所有的数字似乎都是有效的,那么您的列可能顺序不对,并且 VALUES 子句中的一个项目被插入到 NUMBER 列而不是预期的 VARCHAR2 列中。当 table 添加或删除列时会发生这种情况。

如果您正在执行 INSERT 或 UPDATE,并使用提供值的子查询。显然,前面的考虑在这里也适用。更复杂的是,有问题的字符串隐藏为 table 中的一行。解决方法是识别具有非数字字符串的行(或多行),然后更改数据(如果有误)或向子查询添加一些内容以避免选择它。问题在于确定确切的行。 假设错误数据是一个字母字符,可以使用以下查询:

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

其中 col 是包含错误数据的列。

尝试注释一半的字段名和值并检查ORA-1722是否仍然存在。当你发现一半有错误时,尝试对一半进行注释,依此类推。找到产生问题的确切字段和值,检查并修复它们。