首页 > 代码库 > 游标 的概念及应用

游标 的概念及应用

游标:是通过SQL语句在内存里建立的一块“区域”,临时存储数据
可以通过游标来提取区域里的数据

 

分类:
1)隐式游标 默认select insert update delete语句都是用隐式游标
2)显示游标


隐式游标的属性:
%ROWCOUNT 代表DML成功执行的数据行数
%FOUND 布尔类型 TRUE代表insert update delete的一条语句执行成功
%NOTFOUND 布尔类型 功能与%FOUND相反
%ISOPEN 布尔类型 DML执行过程中 为TRUE 执行结束为FALSE

通过游标属性来使用隐式游标!!!

 

declare

v_name varchar2(10);
v_job varchar2(10);

cursor emp_cursor  --步骤1:声明游标 (名字)
is

select emp.ename,emp.job
from emp
where emp.empno=7788;   (select 语句)
begin
  --步骤2:打开游标
  open emp_cursor;
  --步骤3:到游标中提取数据
  fetch emp_cursor into v_name,v_job;
  --输出提取的值
  dbms_output.put_line(v_name||,||v_job);
  --步骤4:
  close emp_cursor;
end;
--使用for来循环提取游标里的数据
--使用循环提取游标时,会自动打开及关闭游标
declare
cursor cursor_for
is
select * from emp;
begin
  --打开游标
  --open cursor_for;
  --循环提取
  for emprow in cursor_for loop
    dbms_output.put_line(emprow.empno||,||emprow.ename);
  end loop;
 -- close cursor_for;
end;

带参数的游标:

--带参数的游标
declare
v_name varchar2(10);
v_job varchar2(10);
cursor emp_cursor(dno number)  --步骤1:声明游标
is
select emp.ename,emp.job
from emp
where emp.empno=dno;
begin
  --步骤2:打开游标
  open emp_cursor(7788);
  --步骤3:到游标中提取数据
  fetch emp_cursor into v_name,v_job;
  --输出提取的值
  dbms_output.put_line(v_name||,||v_job);
  --步骤4:
  close emp_cursor;
end;

 

游标 的概念及应用