温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

oracle的显式游标

发布时间:2020-03-30 17:28:15 来源:网络 阅读:456 作者:matengbing 栏目:关系型数据库
declare   cursor user_cur   is select *    from my_user;   user_row my_user%rowtype;   begin       open user_cur;       loop       fetch user_cur into user_row;       exit when user_cur%notfound;       dbms_output.put_line(user_row.user_id||'----'||user_row.name);       end loop;       close user_cur;   end;
declare   cursor user_cur   is select *    from my_user;   row_user my_user%rowtype;   begin       open user_cur;       loop         fetch user_cur into row_user;         exit when user_cur%notfound;         dbms_output.put_line(row_user.user_id||'----'||row_user.name||'----'||row_user.age);       end loop;       close user_cur; end;
declare   cursor row_user   is select *    from my_user;   type my_user_tab is table of my_user%rowtype;    /*    定义和表my_user行对象一致的集合类型cur_row_user,   用于存放批量得到的数据   */   cur_row_user my_user_tab;         begin       open row_user;       loop         /*从结果集中提取数据,每次提取两行*/         fetch row_user bulk collect into cur_row_user limit 2;         /*遍历集合cur_row_user中的数据*/         for i in 1..cur_row_user.count loop             dbms_output.put_line(cur_row_user(i).user_id||'----'||cur_row_user(i).name||'----'||cur_row_user(i).age);         end loop;         exit when row_user%notfound;               end loop;       close row_user;   end;
declare   cursor user_cur   is select *    from my_user;   type my_user_tab is table of my_user%rowtype;    /*    定义和表my_user行对象一致的集合类型cur_user_cur,   用于存放批量得到的数据   */   cur_user_cur my_user_tab;         begin       open user_cur;       loop         /*从结果集中提取数据,每次提取两行*/         fetch user_cur bulk collect into cur_user_cur limit 2;         /*遍历集合cur_user_cur中的数据*/         for i in 1..cur_user_cur.count loop             dbms_output.put_line(cur_user_cur(i).user_id||'----'||cur_user_cur(i).name||'----'||cur_user_cur(i).age);         end loop;         exit when user_cur%notfound;               end loop;       close user_cur;   end;
declare   cursor user_cur   is select *    from my_user;   begin               for cdr in user_cur           loop             dbms_output.put_line(cdr.user_id||'----'||cdr.name||'----'||cdr.age);           end loop;   end;   /*cursor for loop 不需要特别的申明变量,它可以提取出行对象类型数据*/
declare   cursor user_cur   is select *    from my_user;   cdr my_user%rowtype;   begin        if user_cur%isopen then          fetch user_cur into cdr;          dbms_output.put_line(cdr.user_id||'----'||cdr.name||'----'||cdr.age);        else dbms_output.put_line('游标没有打开');        end if;   end;
declare   cursor user_cur   is select *    from my_user;   cdr my_user%rowtype;   begin     open user_cur;        if user_cur%isopen then          loop            fetch user_cur into cdr;            exit when user_cur%notfound;            dbms_output.put_line(cdr.user_id||'----'||cdr.name||'----'||cdr.age);           end loop;        else dbms_output.put_line('游标没有打开');        end if;   end;
declare   cursor user_cur   is select *    from my_user;   cdr my_user%rowtype;   begin     open user_cur;      loop        fetch user_cur into cdr;              if user_cur%found then                 dbms_output.put_line(cdr.user_id||'----'||cdr.name||'----'||cdr.age);              else                 dbms_output.put_line('游标没有打开');                exit;              end if;      end loop;     end;
declare   /*这里的取值写在declare和begin中都可以*/   v_user_id my_user.user_id%type:='&v_user_id';   /*这里的v_user_id的类型写number和my_user.user_id%type都可以*/   cursor c_my_user(v_user_id my_user.user_id%type)   is select *    from my_user   where user_id=v_user_id;   cdr my_user%rowtype;      begin         open c_my_user(v_user_id);      loop        fetch c_my_user into cdr;              if c_my_user%found then                 dbms_output.put_line(cdr.user_id||'----'||cdr.name||'----'||cdr.age);              else                 dbms_output.put_line('游标没有打开');                exit;              end if;      end loop;     end;


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI