那如何能让他是('_Z','_P','_N','_V')呢?

解决方案 »

  1.   

    B:='_Z'||'_P'||'_N'||'_V';
    改成
    B:=chr(39)||'_Z'||chr(39)||','||chr(39)||'_P'||chr(39)||','||chr(39)||'_N'||chr(39)||','||chr(39)||'_V'||chr(39);
      

  2.   


    可是还是不好用啊。
    我用in('_Z','_P','_V','_N')就能查到资料但是用in (B)就查不到,为什么啊?难道是我还有其他的地方写错了吗?
      

  3.   

    if(cc.grade='Z' and cc.grade_flag='N') then
                     B:='_Z';此时,in (B)是什么样的啊?
      

  4.   

    这样
    STR := 'SELECT * FROM TBNAME WHERE COLNAME IN ('||CHR(39)||B||CHR(39)||')';
    EXECUTE IMMEDIATE STR;
      

  5.   

    我们老板是这么解决的
    and       substr(a.subinventory_code,5,1) in 
                                                            (select grade from 
                                                            (
                                                            select 'Z' grade,1 seq from dual union
                                                            select 'P'grade ,2 seq from dual union 
                                                            select 'N' grade,3 seq from dual union 
                                                            select 'V' grade,4 seq from dual
                                                            order by seq
                                                            ) grade_list
                                                            where seq <= 
                                                            (select seq from
                                                            (
                                                              select 'Z' grade,1 seq from dual union
                                                              select 'P'grade ,2 seq from dual union 
                                                              select 'N' grade,3 seq from dual union 
                                                              select 'V' grade,4 seq from dual 
                                                            ) 
                                                              where grade=cc.grade
                                                            )
                                                            )