游标

2019-08-19  本文已影响0人  bigpeng个人博客

1、什么是游标
游标是SQL的一个内存工作区,用以临时存储从数据库中提取的数据集。可以理解为java中的集合或jdbc中的resultSet。

2、游标的使用

显示游标使用的四个步骤:
1)定义游标
语法:

CURSOR cursor_name[(parameter[, parameter]…)] IS 查询语句;

例:

declare 
 CURSOR test_cursor IS    
         SELECT title,author FROM web_article;

2)打开游标

open 游标名
例:
open test_cursor;

3)提取数据
语法:

FETCH cursor_name INTO {variable_list | record_variable };

4)关闭游标

CLOSE cursor_name;

3、游标的属性

常用次来判断游标的结束
实例:

declare 
  --定义变量
  v_name h_user.name%TYPE;
  v_dept h_user.dept%TYPE;
  --定义游标
  cursor user_cursor(dept_no number default 1 ) 
         is select name,dept from H_USER where dept<dept_no;   
begin
  --打开游标 传递参数的值
  open user_cursor(dept_no => 5);
  
  --遍历游标
  loop
    --取游标中的值
    fetch user_cursor into v_name,v_dept;
    --判断循环结束条件
    exit when user_cursor%NOTFOUND;
    
    DBMS_OUTPUT.put_line(v_name||':'||v_dept);
  end loop;
  --关闭游标
  close user_cursor;
    
end;          

4、游标的for循环
游标FOR循环语句,自动执行游标的OPEN、FETCH、CLOSE语句和循环语句的功能;
语法:

FOR 游标中单条记录变量  IN  有标名[参数] 
      LOOP
              -- 游标数据处理代码
       END LOOP;

示例:

declare 
  --定义游标
  cursor user_cursor(dept_no number default 1 ) 
         is select name,dept from H_USER where dept<dept_no;   
begin
  --for循环遍历游标
  for user_rec in user_cursor(5)
    loop
      DBMS_OUTPUT.put_line(user_rec.name||':'||user_rec.dept);  
    end loop;
end;          
上一篇 下一篇

猜你喜欢

热点阅读