首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

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

2012-03-20 
【疑问】查询的to_number问题。RTSELECT to_number(TA.abc) FROM TA这样的一个查询语句。我的理解 :将表TA的ab

【疑问】查询的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

热点排行