17,088
社区成员
发帖
与我相关
我的任务
分享
--看不太明白,动态语句先构造SQL语句
--用EXECUTE IMMEDIATE SQL语句 然后执行
DECLARE
V_SQL VARCHAR2(200);--其中v_sql是动态游标拼接的结果集
BEGIN
--动态sql赋值,用:v_talbe,v_:name来申明该变量从外部获得
V_SQL='SELECT * FROM :v_table where name=:v_name.... '
--动态测试,y游标cur_result返回结果,用using关键词传递参数
OPEN cur_result FOR v_sql using ....;
RETURN cur_result;
END
DECLARE
TYPE v_table IS TABLE OF t_user%rowtype INDEX BY binary_integer;
my_table v_table;
BEGIN
EXECUTE IMMEDIATE 'SELECT * FROM '||'t_user' BULK COLLECT INTO my_table;
for i in 1..my_table.count/10 --my_table.count/10取到的值为四舍五入值
loop
dbms_output.put_line('suser--'||my_table(i).suser);
dbms_output.put_line('name---'||my_table(i).name);
dbms_output.put_line('sex----'||my_table(i).sex);
END loop;
end;