在oracle上执行一条sql,以下面为例
select * from (select to_number(-1) as aa from dual) where aa > 0
执行出来应该是查不出数据的,但是我在另一个oracle数据库上执行出来的结果竟然是-1,哪位高手帮忙解答一下呀,这个问题怎么解决??感谢啦~

解决方案 »

  1.   

    有问题的那个数据库,你执行的是原原本本的这条sql?
    那个数据库有没有其他异常
      

  2.   

    是执行的一样的sql。也没发现有什么其他的异常,您指的哪方面的异常?(或许我没有注意到)
      

  3.   

    指的是平常执行代码的结果是否正常
    这条语句多执行几次都返回-1 ?
    去掉to_number再执行的情况如何
      

  4.   


    你用plsql块可以获取 exception的。
      

  5.   


    请问我应该怎么写?感谢?虚心请教ing~
      

  6.   

    select * from(select -1 aa from dual)where aa>0
    还会返回-1 ?
    那更直接点
    select 1 from dual where -1>0
    结果如何
    再用别的算式测试看看
      

  7.   

    select * from (select to_number(-1) as aa from dual)t where t.aa > 0
    试下看
      

  8.   


    数据库是不会出这样的错的,应该是人为的错误。你是不是执行的时候,少了后面的条件select * from (select to_number(-1) as aa from dual)