mctname字段(Varchar2(64)) 在tmp_mctinf <(Varchar2(64)),所以放不进去,Insert into tmp_mctinf (select newmctcode,substr(mctname,1,10) from mctinf where
 newmctinf not in (select mctcode from tmp_mctinf));

解决方案 »

  1.   

    不对呀,我tmp_mctinf表中定义的对应字段mctname也是Varchar2(64)的。
      

  2.   

    desc tmp_mctinf ;
    desc mctinf ;传上结果
      

  3.   

    SQL> desc tmp_mctinf;
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     MCTCODE                                            VARCHAR2(12)
     MCTNAME                                            VARCHAR2(64)SQL> desc mctinf;
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     NEWMCTCODE                                NOT NULL CHAR(15)
     MCTTYPE                                            CHAR(4)
     MCTNAME                                            CHAR(64)
     CHECKLMTAMT                                        NUMBER(13,2)
     AREACODE                                           CHAR(8)
     RESERVED                                           CHAR(32)
     PINLMTAMT                                          CHAR(20)
     ADDRESS                                            CHAR(60)
     RESERVED2                                          CHAR(32)
      

  4.   

    NEWMCTCODE  CHAR(15) > MCTCODE  VARCHAR2(12)try:
    Insert into tmp_mctinf (select substr(newmctcode,1,12),mctname from mctinf where
     newmctinf not in (select mctcode from tmp_mctinf));
      

  5.   

    谢谢,问题是解决了!
    ^_^
    我没注意到mctinf表中的newmctcode是char型的,如果是varchar2的,我的语句就没问题了。