我现在在一个PLSQL中需要用传进来的不用的参数拼成一个动态的SQL文,在CURSOR定义的时候怎么动态的去使用这个SQL文呢?请高手帮忙解答  谢谢

解决方案 »

  1.   

    declare
    v_sql varchar2(500);
    v_table varchar2(50);
    v_index varchar2(50);
    type cur_index is ref cursor;
    vc_index cur_index;
    begin 
      v_table := 'AAA';
      open vc_index for
           'select index_name from user_indexs where table_name=:1'
           using v_table;
      loop
          fetch vc_index into v_index;
          exit when vc_index%NOTFOUND;        
          ...
      end loop;
      close vc_index;
    end;
    /
      

  2.   

    把SQL文拼成字符串,然后用
    EXECUTE IMMEDIATE XXXXX执行
      

  3.   

    我这句SQL要取出很多个子段  这样的应该怎么写呢?
      

  4.   

    declare
     v_name varchar2(20);
     v_password varchar2(30);
     cursor temp
        select 1 "name",2 "password" from dual
        union 
        select 2 "name",3 "password" from dual;begin   open temp
      loop
          fetch name,password into v_name,v_password;
          exit when temp%NOTFOUND;        
          ...
      end loop;
      close temp;
    end;
    /
    ok?
      

  5.   

    首先  SQL是动态生成的,表名不一样,但取得字段完全一样。
    其次  字段是多个的
      

  6.   

    wiler不是解释的十分详细了吗?楼主看了吗?