SQL> select * from (select to_number('a') from dual);
select * from (select to_number('a') from dual)
*
ERROR 位于第 1 行:
ORA-01722: 无效数字
可以看出:如果外层查询只想或许一个内层查询的记录数的话,那么内层的表达式是不被计算的,直接统计内层表的记录数;
反之,如果希望获取内容,则表达式必然要求值,此时才发现错误;
..
[/php]
Oracle的语义分析功能蛮强啊。。。。 [/B]
SQL> select count(*) from (select * from (select TO_NUMBER(SUBSTR(PARTITION_NAME,6)) from user_tab_partitions)) ;
COUNT(*)
----------
920
SQL>