oracle SQL Developer 显示数字数据类型为空,而 Length 函数显示 ORA-01722:无效数字
Posted
技术标签:
【中文标题】oracle SQL Developer 显示数字数据类型为空,而 Length 函数显示 ORA-01722:无效数字【英文标题】:oracle SQL Developer shows null for number data type while Length function says ORA-01722: invalid number 【发布时间】:2018-07-19 20:04:26 【问题描述】:给定一个具有单个数字数据类型列的表,并且 SQL 开发人员正在(可能不正确地)显示空值,尝试通过执行以下 SQL 来查明问题:
select length(myNumberColumn) from myTable
返回
ORA-01722: 无效号码
Trim()
也会抛出同样的错误。看起来有些数据可能是坏的,但我的表有几千行,如何识别坏记录?严重的是 SQL Developer,它是 null 还是无效数字?有没有办法让 SQL Developer 显示实际值而不是 null?
【问题讨论】:
我不明白length()
是如何返回该错误的。
听起来可能是corrupt。 dump()
显示该值是什么?
有趣,之前没见过dump()。坏记录回来了: Typ=2 Len=8: 255,248,0,0,0,0,0,0
在使用 IBM/AIX RISC System/6000 前几天我遇到了一个类似的问题(由 Alex Poole 发布):版本 12.1.0.2.0 你使用什么版本?
【参考方案1】:
找到了!有问题的值确实在 SQL Developer 中显示为 (null),但是将数据导出到 csv 并在 Excel 中查看显示了记录的实际值,并且非常大.... 1.10905886754731E+130(基本上是无穷大)。理想情况下,SQL 开发人员不会为这些类型的记录显示 (null)。
【讨论】:
导出到 CSV 和导入到 Excel 都可能改变值。dump(myNumberColumn)
会更可靠。
您向 SQL Developer 提出了不可能的问题。该值一开始就无效。 应该 SQL Developer 如何显示这些值?理想情况下,Oracle 数据库不应允许存储无效值。确实如此——存储无效值的方法有很多种,问题出在数据库产品上,而不是前端(SQL Developer)。
According to this,SQL Navigator(不是我用过的客户端!)显示“错误”。认为 SQL Developer 可以显示 (ERROR)
或 (INVALID)
或类似内容似乎并非不合理。一个给杰夫...以上是关于oracle SQL Developer 显示数字数据类型为空,而 Length 函数显示 ORA-01722:无效数字的主要内容,如果未能解决你的问题,请参考以下文章
如何让 Oracle SQL Developer 显示应用程序图标?
向 SQL Developer 添加新连接时不显示 Oracle TNS 名称