读书人

【疑问】查询的to_number有关问题

发布时间: 2012-03-20 14:01:10 作者: rapoo

【疑问】查询的to_number问题。
RT

SELECT to_number(TA.abc) FROM TA
这样的一个查询语句。

我的理解 :将表TA的abc字段转为number型

实际plsql操作 :
在 TA.abc中 ,有汉字也有数字,按我的理解,plsql应该会报错。。因为有汉字存在。。
但实际却并没有报错,而是正常的执行,并查询出来了。。查询出的结果中没有汉字。全部都是数字。。

但是,更让我疑惑的事情是 -- plsql有一个展开所有查询结果的按钮。当我展开时才报错。我硬生生的理解是plsql查询时查出的几条信息都是number型的所以不报错,但是展开所有查询结果时,就会发生异常。。。。-_-b

可是在db中,汉字和number型的数据是无规则混合的。。。

疑问 :是不是当plsql执行时先执行对的,再执行错的呢??

[解决办法]
显示数据 我已经拉的很小了 显示5条 按正常查询 带字母的应该在20多行 但是我点击查询 还是会报这个错误

SQL code
select col1 from tb1--select to_number(col1,'999999') from tb1col1-----1423307763452453245733333581337744442222623466661020017504510614333310111019102322238888al029977
[解决办法]
以下说法可以参考,不一定准确:
1、对于非分区表、无索引、无并行的情况下oracle默认是按照extent_id和rowid来联合排序,即order by extent_id,rowid
2、对于分区表、无索引、无并行的情况下oracle默认是按照partition_position、extent_id和rowid来联合排序,即order by partition_position,extent_id,rowid

读书人网 >oracle

热点推荐