Sql 将nvarchar列的内容插入表中的数字列,然后插入另一个表中
我想将表A的column1(nvarchar2(2000字符)数据类型)的内容插入column2 (表B的编号(18,3)数据类型) 但我犯了个错误 错误SQL:ORA-01722:Nombre非有效Sql 将nvarchar列的内容插入表中的数字列,然后插入另一个表中,sql,oracle,Sql,Oracle,我想将表A的column1(nvarchar2(2000字符)数据类型)的内容插入column2 (表B的编号(18,3)数据类型) 但我犯了个错误 错误SQL:ORA-01722:Nombre非有效 您可以使用大小写表达式将不可转换的值转换为NULL: (case when regexp_like(a.column1, '^[0-9]+[.]?[0-9]*$') then to_number(a.column1) end) 类似地,您可以使用where子句来过滤坏值。数据类型
您可以使用
大小写
表达式将不可转换的值转换为NULL
:
(case when regexp_like(a.column1, '^[0-9]+[.]?[0-9]*$')
then to_number(a.column1)
end)
类似地,您可以使用where
子句来过滤坏值。数据类型不匹配。
这可能是一条捷径:
“将目标表列重建为nvarchar(max)”看起来您的varchar2列中有非数值。这样的行应该怎么办?不,它只包含数值。我已经用它来转换数值,但它不会work@Blue . . . 仅当值通过正则表达式检查时,才使用
来指定编号()。应该没有问题。