ITPub博客

请教一个sql查询的错误:ORA-01722: invalid number

原创 Linux操作系统 作者:tigersun 时间:2007-12-06 14:24:58 0 删除 编辑
这个查询来自quest central安装脚本,我截取了其中出错的部分,查询本身看起来有些奇怪:


下面查询,运行时报:ORA-01722: invalid number错误

select DISTINCT UPPER(t.instance),s.machine
from v$parameter p, v$thread t ,  v$session s
where  t.thread# = DECODE(TO_NUMBER(p.value),0,1,TO_NUMBER(p.value))
and p.name='thread';
第 3 行出现错误:
ORA-01722: invalid number

注释掉v$session 之后,不再报错
select DISTINCT UPPER(t.instance)       --    , s.machine
from v$parameter p,v$thread t            --    , v$session s
where  t.thread# = DECODE(TO_NUMBER(p.value),0,1,TO_NUMBER(p.value))
and p.name='thread';

保留v$session  注释掉v$parameter 和v$thread 的连接,也不再报错
select DISTINCT UPPER(t.instance),s.machine
from v$parameter p,v$thread t , v$session s
where                           --    t.thread# = DECODE(TO_NUMBER(p.value),0,1,TO_NUMBER(p.value)) and
p.name='thread';

可见问题是两次注释部分相冲突,但是我不明白这两者为什么会冲突,这会儿脑子不清楚得很,请高手指点!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/310745/viewspace-6322/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-12-26

  • 博文量
    31
  • 访问量
    22688