【发布时间】:2019-10-10 11:33:42
【问题描述】:
我想将表 A 的 column1(nvarchar2(2000 char) 数据类型)的内容插入 column2 (数字(18,3)数据类型)表B 但我得到了错误
错误 SQL : ORA-01722: Nombre non valide
【问题讨论】:
-
似乎您的 varchar2 列中有非数字值。这样的行应该怎么办?
-
不,它只包含数值
我想将表 A 的 column1(nvarchar2(2000 char) 数据类型)的内容插入 column2 (数字(18,3)数据类型)表B 但我得到了错误
错误 SQL : ORA-01722: Nombre non valide
【问题讨论】:
您可以使用case 表达式将不可转换的值转换为NULL:
(case when regexp_like(a.column1, '^[0-9]+[.]?[0-9]*$')
then to_number(a.column1)
end)
同样,您可以使用where 子句过滤掉错误值。
【讨论】:
to_number()。应该没有问题。
数据类型不匹配。 短途可能是: "将目标表列重建为 nvarchar(max)"
【讨论】: