gpt4 book ai didi

plsql - 在存储过程参数中使用引用游标与 sys_refcursor

转载 作者:行者123 更新时间:2023-12-01 23:56:11 29 4
gpt4 key购买 nike

CREATE  OR  REPLACE  PROCEDURE GetEmployeesInDept( c OUT  SYS_REFCURSOR)

我有一个与上述存储过程相关的查询,也就是说,在定义光标时,我们将其称为 sys_refcursor,在某些网站中,我将其视为 REF CURSOR,如图所示

create or replace procedure GetEmployeesInDept( c out ref cursor)

请告诉我引用光标和sys_refcursor之间有什么区别。

最佳答案

不太明白你的意思

create or replace procedure GetEmployeesInDept( c out ref cursor)

我以前没有见过这个,而且我无法编译这样声明的过程。您能否提供示例代码或您以前见过此内容的链接?

您可能会看到如下内容:

CREATE OR REPLACE PACKAGE demo AS

TYPE ref_cursor IS REF CURSOR;

PROCEDURE GetEmployeesInDept(c OUT ref_cursor);

END demo;
/

CREATE OR REPLACE PACKAGE BODY demo AS

PROCEDURE GetEmployeesInDept(c OUT ref_cursor)
IS
BEGIN
RAISE NO_DATA_FOUND;
END GetEmployeesInDept;

END demo;
/

在本例中,我们将类型声明为 REF CURSOR,并将其用作存储过程中的 OUT 参数。

使用声明为 REF CURSOR 的类型与使用 SYS_REFCURSOR 没有区别,因为 SYS_REFCURSOR 是在 STANDARD 中定义的 封装为 REF CURSOR,其方式与我们声明类型 ref_cursor 的方式相同。事实上,如果您使用的是 Oracle 9i 或更高版本,请查看 Oracle 数据库安装中的 %ORACLE_HOME%\rdbms\admin\stdspec.sql,您应该在其中的某处找到以下行:

type sys_refcursor is ref cursor;

SYS_REFCURSOR 是在 Oracle 9i 中引入的。您可能会发现在 Oracle 9i 发布之前编写的 PL/SQL 代码中声明为 REF CURSOR 的各种类型。

关于plsql - 在存储过程参数中使用引用游标与 sys_refcursor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6805947/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com