【问题标题】:insert content of nvarchar column into number column from a table into another将 nvarchar 列的内容插入到数字列中,从一个表到另一个
【发布时间】:2019-10-10 11:33:42
【问题描述】:

我想将表 A 的 column1(nvarchar2(2000 char) 数据类型)的内容插入 column2 (数字(18,3)数据类型)表B 但我得到了错误

错误 SQL : ORA-01722: Nombre non valide

【问题讨论】:

  • 似乎您的 varchar2 列中有非数字值。这样的行应该怎么办?
  • 不,它只包含数值

标签: sql oracle


【解决方案1】:

您可以使用case 表达式将不可转换的值转换为NULL

(case when regexp_like(a.column1, '^[0-9]+[.]?[0-9]*$')
      then to_number(a.column1)
 end) 

同样,您可以使用where 子句过滤掉错误值。

【讨论】:

  • 我已经使用 to_number() 来转换值,但是它不起作用
  • @Blue 。 . .这仅在值通过正则表达式检查时使用to_number()。应该没有问题。
【解决方案2】:

数据类型不匹配。 短途可能是: "将目标表列重建为 nvarchar(max)"

【讨论】:

    猜你喜欢
    • 2011-08-13
    • 1970-01-01
    • 2022-01-01
    • 2014-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多