如何修复 oracle ORA-01722 无效号码错误

Posted

技术标签:

【中文标题】如何修复 oracle ORA-01722 无效号码错误【英文标题】:how to fix oracle ORA-01722 invalid number error 【发布时间】:2019-03-11 17:54:42 【问题描述】:

我在 myTable 的 column1(NUMBER(22,6)) 上有带有这些输入的 Oracle db。

0
199935,15
1026299

我想这样显示这些列:

00000000000000000.000000
00000000000199935.150000
00000000001026299.000000

我的查询:

SELECT trim(to_char(trim(replace(column1,',','.')),'9999999999999990.999999')) 
FROM myTable;

但 Oracle 显示此错误。我该如何解决?

01722. 00000 -  "invalid number"
*Cause:    The specified number was invalid.
*Action:   Specify a valid number.

【问题讨论】:

你的专栏是什么类型的?是数字还是字符串? column1 类型为 NUMBER(22,6)。谢谢 【参考方案1】:

如果您有一个数字列,您所要做的就是使用带有正确参数的to_char;这应该可以完成工作:

select to_char(column1, '00000000000000000D000000', 'NLS_NUMERIC_CHARACTERS = ''.,''') from ...

【讨论】:

以上是关于如何修复 oracle ORA-01722 无效号码错误的主要内容,如果未能解决你的问题,请参考以下文章

什么是“oracle ORA-01722”无效数字?

使用python将数据从csv文件插入oracle时出现错误ORA-01722:无效数字

Oracle sql 错误 ora-01722 无效数字 ora-02063 前行来自

Oracle SQL:插入失败 ORA-01722:无效数字,数据是数字而不是字符串,为啥会失败?

Oracle ORA-01722: 由于 WHERE IS NULL 条件导致的无效数字错误

ORACLE-023:令人烦恼的 ora-01722 无效数字