Oracle Cursors语法总结

http://tech.ddvip.com   2008年09月06日    社区交流

内容摘要:关于Oracle Cursors的语法总结,Oracle Cursors是用来查询数据库,获取记录集合(结果集)的指针,可以让开发者一次访问一行结果集,在每条结果集上作操作。

  一.Oracle的Cursors概念:

  游标:用来查询数据库,获取记录集合(结果集)的指针,可以让开发者一次访问一行结果集,在每条结果集上作操作。

  二.Oracle的Cursors分类:

  1.静态游标:

  分为显式游标和隐式游标。

  2.REF游标:

  是一种引用类型,类似于指针。

  三.Oracle的Cursors详细内容:

  1.显式游标:

  CURSOR游标名(参数) [返回值类型] IS

  Select语句

  生命周期:

  a.打开游标(OPEN)

  解析,绑定。。。不会从数据库检索数据

  b.从游标中获取记录(FETCH INTO)

  执行查询,返回结果集。通常定义局域变量作为从游标获取数据的缓冲区。

  c.关闭游标(CLOSE)

  完成游标处理,用户不能从游标中获取行。还可以重新打开。

  选项:参数和返回类型

set serveroutput on
declare
cursor emp_cur ( p_deptid in number) is
select * from employees where department_id = p_deptid;
l_emp employees%rowtype;
begin
dbms_output.put_line('Getting employees from department 30');
open emp_cur(30);
loop
 fetch emp_cur into l_emp;
 exit when emp_cur%notfound;
 dbms_output.put_line('Employee id '|| l_emp.employee_id || ' is ');
 dbms_output.put_line(l_emp.first_name || ' ' || l_emp.last_name);
end loop;
close emp_cur;
dbms_output.put_line('Getting employees from department 90');
open emp_cur(90);
loop
 fetch emp_cur into l_emp;
 exit when emp_cur%notfound;
 dbms_output.put_line('Employee id '|| l_emp.employee_id || ' is ');
 dbms_output.put_line(l_emp.first_name || ' ' || l_emp.last_name);
end loop;
close emp_cur;
end;
/

来源:PHP资讯    责编:豆豆技术应用

正在加载评论...