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; /
把SQL文拼成字符串,然后用 EXECUTE IMMEDIATE XXXXX执行
我这句SQL要取出很多个子段 这样的应该怎么写呢?
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?
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;
/
EXECUTE IMMEDIATE XXXXX执行
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?
其次 字段是多个的