11 plsql
CREATE OR REPLACE PROCEDURE GetEmployeesInDept( c OUT SYS_REFCURSOR)
Run Code Online (Sandbox Code Playgroud)
我有一个与上述存储过程相关的查询,即在定义游标时我们将其称为sys_refcursor,在某些我们的站点中,我将其视为REF CURSOR,如图所示
创建或替换过程GetEmployeesInDept(c out ref cursor)
请告诉我ref cursor和sys_refcursor有什么区别.
Luk*_*ard 16
我不确定你的意思
create or replace procedure GetEmployeesInDept( c out ref cursor)
Run Code Online (Sandbox Code Playgroud)
我以前没见过这个,我不能得到这样的程序来编译.您能否提供示例代码或链接到您之前看过的地方?
您可能会看到的内容如下:
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;
/
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我们将类型声明为a 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;
Run Code Online (Sandbox Code Playgroud)
SYS_REFCURSOR在Oracle 9i中引入.您可能会发现REF CURSOR在Oracle 9i发布之前编写的PL/SQL代码中声明的各种类型.
| 归档时间: |
|
| 查看次数: |
39623 次 |
| 最近记录: |