jane27 发表于 2019-1-26 13:49:23

Open for

OPEN FOR语句
  --专门处理返回多行的动态select语句
  --语法:
OPEN cursor_variableFORdynamic_SQL_string
  --其中,cursor_variable是一种REF CURSOR类型的游标*变量*,
  --dynamic_SQL_string:是包含多行查询的字符串
--示例1:11236测试
declare
--声明ref cursor类型
type student_cur_type is ref cursor;
--声明游标变量。此时,游标变量未指向任何查询的结果集
student_cur student_cur_type;
v_zipVARCHAR2(5) :='&sv_zip';
v_first_nameVARCHAR2(25);
v_last_nameVARCHAR2(25);
begin
--打开游标变量,让它指向一个动态select的结果集
open student_cur for 'select first_name,last_name '||
                     ' from student where zip= :zip'
       using v_zip;                  
--游标检索
loop
   fetch student_cur into v_first_name,v_last_name;
   exit when student_cur%notfound;
   dbms_output.put_line(v_first_name||' '||v_last_name);
end loop;
--关闭游标
close student_cur;
end;  




页: [1]
查看完整版本: Open for