【问题标题】:Oracle ref cursor / normal cursor at schema level架构级别的 Oracle 参考游标/普通游标
【发布时间】:2018-09-10 11:47:54
【问题描述】:

我想知道我们是否可以在架构级别将cursorref cursor 声明为存储对象。我尝试将以下语句用于ref cursor

CREATE TYPE my_ref_cursor IS REF CURSOR RETURNING employees%ROWTYPE;

但我得到了错误。一个小的工作示例就可以了,如果我们不能,那么简要说明其背后的原因将是一个很大的帮助。

【问题讨论】:

  • 你能解释一下你为什么尝试使用TYPE my_ref_cursor IS REF CURSOR RETURN employees%ROWTYPE吗?无论如何,Oracle 不鼓励您使用弱引用来实现什么目标。看来你想实现sys_refcursor的功能,那为什么不直接使用呢?

标签: oracle plsql cursor sys-refcursor ref-cursor


【解决方案1】:
CREATE OR REPLACE PACKAGE yourSchemaName.yourPackageName AS
TYPE my_ref_cursor IS REF CURSOR RETURN employees%ROWTYPE;
--your stored procedure and function declarations 
end yourPackageName ;

这是 oracle sql 中的工作示例。这是其中的包规范和引用游标类型声明;

【讨论】:

    【解决方案2】:

    我怀疑这是可能的。来自CREATE TYPE Statement

    CREATE TYPE 语句创建或替换以下之一的规范:

    • 抽象数据类型 (ADT)(包括 SQLJ 对象类型)

    • 独立的可变数组(varray)类型

    • 独立嵌套表类型

    • 不完整的对象类型

    【讨论】:

    • hmm.. 那么我想剩下的唯一方法是通过一个包含所有引用游标声明的包。
    • 我在回答中给出了例子
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-03
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多