DBAtlas · 数据库运维图谱

ORA-01722: Invalid number(无效数字)

Oracle

含义

在需要数值的上下文中使用了无法转换为数字的字符串。隐式或显式转换失败。

原因

将数值列与文本比较(如 WHERE num_col = 'ABC')、向数值字段插入含字母的值、TO_NUMBER 的格式不合适,或小数/分组分隔符不匹配(逗号与句点)。

解决方法

找出转换失败的表达式;通常是 WHERE 条件或 INSERT 的值。在文本/数字比较中确保类型兼容,必要时使用显式转换:TO_NUMBER(my_column),或在文本一侧使用 TO_CHAR。在应用层阻止非数字输入进入数值列。注意 NLS_NUMERIC_CHARACTERS 设置。

在 DBAtlas 中打开 →

同一数据库的其他条目