在PL / SQL中,游标和引用游标之间有什么区别?

时间:2013-03-12 07:41:37

标签: oracle plsql

据我所知,游标用于处理私有区域中的SQL语句,我们可以进一步使用它。 Ref游标将光标定义在需要它的位置。如果我错了,请纠正我。

2 个答案:

答案 0 :(得分:3)

游标实际上是在数据库上运行DML(选择,插入,更新,删除)的任何SQL语句。

引用游标是指向结果集的指针。这通常用于在数据库服务器上打开查询,然后将其留给客户端以获取所需的结果。引用游标也是一个游标,但在讨论静态SQL时通常会使用术语游标。

Ref游标通常用于根据用户输入更改查询的where子句。例如,此函数可以打开对emp表或dept表的查询,具体取决于用户选择的内容:

create or replace function f (input in varchar2) return sys_refcursor as
  cur sys_refcursor;
begin

  if input = 'EMP' then
    open cur for select * from emp;
  elsif input = 'DEPT' then
    open cur for select * from dept;
  end if;
  return cur;
end;
/

答案 1 :(得分:0)

静态游标与单个SQL查询相关联。 使用称为引用游标的动态游标为不同的查询使用相同的游标是不灵活的。