SELECT MATNOCNAME,MOD(to_number(substr(b.matnocid,3)),10) matc,b.matnocid, 
a.viewno ,a.matname ,a.quantity ,a.level1  level2,a.pviewno ,GETMATLINEBYMATID1(a.MATID,'生产') 
 mLuxian,  GETMATLINEBYMATID1(a.MATID,'包装')  ZLuxian 
 from 
 qd2_xqpdmdataparsexuqiunew a ,
 gjy_icmatno_matname b ,
 gjy_icmatnocategory c where 
 instr(ZLuxian,decode(b.matname,'',ZLuxian,b.matname) )>0 AND 
 instr(mLuxian,decode(b.matno,'',mLuxian,b.matno) )>0  
 AND B.MATNOCID=C.MATNOCID  ORDER BY MATNOCNAME ,A.viewno执行的时候返回ORA-00904:  "MLUXIAN" invalid identifier
我把mLuxian设置为大写也不行。mLuxian返回的是一个varchar2,可能为空
望各位大侠解惑!谢谢

解决方案 »

  1.   


    SELECT MATNOCNAME,MOD(to_number(substr(b.matnocid,3)),10) matc,b.matnocid, 
    a.viewno ,a.matname ,a.quantity ,a.level1  level2,a.pviewno ,GETMATLINEBYMATID1(a.MATID,'生产') 
     mLuxian,  GETMATLINEBYMATID1(a.MATID,'包装')  ZLuxian 
     from 
     qd2_xqpdmdataparsexuqiunew a ,
     gjy_icmatno_matname b ,
     gjy_icmatnocategory c 
    where 
     instr(GETMATLINEBYMATID1(a.MATID,'生产'),decode(b.matname,'',GETMATLINEBYMATID1(a.MATID,'生产'),b.matname) )>0 AND 
     instr(GETMATLINEBYMATID1(a.MATID,'包装'),decode(b.matno,'',GETMATLINEBYMATID1(a.MATID,'包装'),b.matno) )>0  
    --不允许用别名
     AND B.MATNOCID=C.MATNOCID  
    ORDER BY MATNOCNAME ,A.viewno