这样是不行的
用动态sql试试

解决方案 »

  1.   

    为是么不行呢?
    如何用动态SQL?
      

  2.   

    因为
    比如你的变量存放的字符串为'1,2,3,4,5'
    oracle认为只是一个字符串变量而不能在编译sql语句时连逗号一起编译
    str := 'select ...'
    execute immediate str into..;
      

  3.   

    例子:
    11:04:57 SQL> set serveroutput on;
    11:05:02 SQL> declare
    11:05:02   2  c varchar2(20);
    11:05:02   3  str varchar2(100);
    11:05:02   4  begin
    11:05:02   5  str:='select bbb from tcc where rownum=1';
    11:05:02   6  execute immediate str into c;
    11:05:03   7  dbms_output.put_line(c);
    11:05:20   8  end;
    11:05:22   9  /
    CPL/SQL 过程已成功完成。实际:130
    11:05:23 SQL> 主要是把要执行的sql语句组合好