我有一个返回 aSYS_REFCURSOR
作为OUT
参数的过程。我想做的是调用该过程,并SYS_REFCURSOR
在另一个过程中使用返回的那个。在第二个过程中,我需要对GROUP BY
结果运行 a ,然后将其返回到另一个SYS_REFCURSOR
.
我遇到的问题是我事先不知道列的名称或数量。
有人对解决方案有任何想法吗?先感谢您。
我有一个返回 aSYS_REFCURSOR
作为OUT
参数的过程。我想做的是调用该过程,并SYS_REFCURSOR
在另一个过程中使用返回的那个。在第二个过程中,我需要对GROUP BY
结果运行 a ,然后将其返回到另一个SYS_REFCURSOR
.
我遇到的问题是我事先不知道列的名称或数量。
有人对解决方案有任何想法吗?先感谢您。
实际上,您可以这样做,但这需要一些努力,而且在大多数情况下,这只是矫枉过正。
方法是接下来的一系列步骤:
简单的例子,来说明这个想法:
select EMPNO, count(*) from
xmltable(
‘/ROWSET/ROW’
PASSING xmltype(CURSOR( SELECT E.EMPNO, E.ENAME, D.DNAME, D.DEPTNO FROM SCOTT.EMP E, SCOTT.DEPT D WHERE e.deptno=D.DEPTNO ))
columns
EMPNO PATH ‘EMPNO’,
ENAME PATH ‘ENAME’,
DNAME PATH ‘DNAME’ ,
DEPTNO PATH ‘DEPTNO’
)
group by EMPNO