我有两张表,A1中有个字段id为NUMBER(10)长度; A2中的id字段为NUMBER(5)长度。
我现在要关联两张表进行查询select A1.* from A1, A2 where A1.id=A2.id ...执行就报错ERROR 位于第 3 行:
ORA-01722: invalid number===================是不是因为我的两个表中的字段长度不同,不能比较?
如果我要比较的话要怎么弄呢?望指教.

解决方案 »

  1.   


    --1、确认一下你的表结构是否如你所说
    desc A1;
    desc A2;
    --2、执行下下面的SQL,看看会不会报错
    select to_number(A1.id) from A1;
    select to_number(A2.id) from A2;
      

  2.   


    --那应该不是这里的错误,把你全部的sql粘出来,...是不是还有其他的sql select A1.* from A1, A2 where A1.id=A2.id ...
      

  3.   

    SQL> create table t1(id number(10));
     
    Table created
     
    SQL> create table t2(id number(5));
     
    Table created
     
    SQL> insert into t1 values(1000000000);
     
    1 row inserted
     
    SQL> commit;
     
    Commit complete
     
    SQL> insert into t2 values(10000);
     
    1 row inserted
     
    SQL> commit;
     
    Commit complete
     
    SQL> select t1.id,t2.id from t1,t2 where t1.id = t2.id;
     
             ID     ID
    ----------- ------
     
    SQL> select t1.id from t1,t2 where t1.id = t2.id;
     
             ID
    -----------
     
    SQL>