gpt4 book ai didi

oracle - 将常规 CURSOR 传递给需要 SYS_REFCURSOR 的 PL/SQL 过程

转载 作者:行者123 更新时间:2023-12-02 05:59:10 26 4
gpt4 key购买 nike

我在 PL/SQL 中有很多命名游标,如下所示:

cursor MY_CURSOR_01 is select * from my_table_01;
cursor MY_CURSOR_02 is select * from my_table_02;

我想在 dbms_xmlgen.newContext 过程中使用它们,该过程需要包含实际查询的 SYS_REFCURSORVARCHAR2

我已经知道我可以做到:

dbms_xmlgen.newContect('select * from my_table_01');

但我想重用现有的游标,而不将它们重写为字符串查询。

有什么想法吗?我使用的是 Oracle 10gR2。

最佳答案

我认为这样的函数不存在,因为 Oracle 的语言规范不允许将 cursor 对象作为参数传递。除非 Oracle 在某处使用了某种魔法,否则没有办法在不使用 refcursor 的情况下一般引用 cursor

但是,您不需要将 SQL 嵌入字符串中即可使用 sys_refcursor。下面是一个非常简单的示例,显示可以使用静态 SQL 打开 sys_refcursor:

DECLARE
c SYS_REFCURSOR;
BEGIN
OPEN c FOR SELECT * FROM DUAL;
CLOSE c;
END;

关于oracle - 将常规 CURSOR 传递给需要 SYS_REFCURSOR 的 PL/SQL 过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23314516/

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