3

我在 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需要 aSYS_REFCURSOR或 aVARCHAR2包含实际查询的过程中使用它们。

我已经知道我可以这样做:

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

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

有任何想法吗?我在 Oracle 10gR2 上。

4

1 回答 1

2

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

但是,您无需将 SQL 嵌入到字符串中即可使用sys_refcursor. 这是一个非常简单的示例,显示sys_refcursor可以使用静态 SQL 打开 a:

DECLARE
   c SYS_REFCURSOR;
BEGIN
   OPEN c FOR SELECT * FROM DUAL;
   CLOSE c;
END;
于 2014-05-13T16:13:29.570 回答