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

use*_*852 5 oracle plsql

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

Chr*_*xon 6

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

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

引用游标通常用于根据用户输入更改查询的 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;
/
Run Code Online (Sandbox Code Playgroud)