我正在使用oracle SQL并希望通过链接将我的数据插入远程数据库。
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是一个视图,如果它有任何帮助。
答案 0 :(得分:0)
尝试将字符串转换为数字时出现ORA-01722(&#34;无效数字&#34;)错误
执行INSERT INTO ... VALUES(...)时 您尝试插入的其中一个数据项是无效的数字。
找到并更正它。 如果所有数字看起来都是有效的,那么您的列可能不按顺序排列,并且VALUES子句中的项目将插入NUMBER列而不是预期的VARCHAR2列。当表中添加或删除了列时,就会发生这种情况。
如果您正在执行INSERT或UPDATE,则使用提供值的子查询。显然,前面的考虑也适用于此。使这更复杂的原因是违规字符串被隐藏为表中的一行。修复是识别具有非数字字符串的行(或行),并更改数据(如果它是错误的)或向子查询添加内容以避免选择它。问题在于确定确切的行。 假设错误数据是字母字符,可以使用以下查询:
SELECT ... WHERE UPPER(col) != LOWER(col)
其中col是包含错误数据的列。
答案 1 :(得分:0)
尝试评论一半的字段名和值,并检查ORA-1722是否仍然存在。当您发现包含错误的一半时,请尝试对其中的一半进行注释,依此类推。找到确切的字段&amp;产生问题的价值,检查并修复它们。