oracle 没错,你也没错.

解决方案 »

  1.   

    我想楼主的目的是:NODE_DEF表中没有class_id这个字段,为什么oracle让
    select class_id from node_class_def where class_id  
     in (select class_id from node_def where NODE_DESCRIPE='CDMA' )
    通过了。
      

  2.   

    oracle肯定不会错,错误只能在你这里。还是仔细核对一下,肯定哪里有疏忽的地方。
      

  3.   

    i asked the  question beforethe answer is http://expert.csdn.net/Expert/topic/1708/1708123.xml?temp=.8685419
      

  4.   

    select class_id from node_def where NODE_DESCRIPE='CDMA' 
    这句话本身就是错的
    因为表node_def里没有class_id这个字段呀!!!
      

  5.   

    ORACLE总会犯错的。
    比如:
    select*from dual;
    select* from dual;
    select *from dual;
    都与
    select * from dual;相同,
    不信你试试,呵呵。
      

  6.   

    对于楼主以上问题,以前有人问过,这可能是oracle设计一个漏洞!SQL> desc aa;
    Name Type        Nullable Default Comments 
    ---- ----------- -------- ------- -------- 
    ID   VARCHAR2(1) Y                         
    FID  VARCHAR2(1) Y  
                           
    SQL> desc bb;
    Name Type        Nullable Default Comments 
    ---- ----------- -------- ------- -------- 
    NO   VARCHAR2(1) Y                         
    FNO  VARCHAR2(1) Y SQL> select * from aa;ID FID
    -- ---
    1  0
    2  1
    3  1
    4  2
    5  3
    6  4
    6  5SQL> select * from bb;NO FNO
    -- ---
    1  0
    2  1
    3  1但对于以下,oracle居然可解释为这样:
    SQL> select * from aa where id in (select id from bb);ID FID
    -- ---
    1  0
    2  1
    3  1
    4  2
    5  3
    6  4
    6  5但单句会出错:
    SQL> select id from bb;select id from bbORA-00904: 无效列名以上测试可以说oracle把select id from bb看成一个集,取aa表所有数据。
      

  7.   

    SQL> select * from aa where id in (select id from dual);ID FID
    -- ---
    1  0
    2  1
    3  1
    4  2
    5  3
    6  4
    6  5与上面结果一样,证明bb表作虚表
      

  8.   

    ORACLE是怎么解释的呢?
    select class_id from node_def where NODE_DESCRIPE='CDMA' 
    而表node_def没有class_id