Plsql 从动态返回ref游标的函数中获取行

Plsql 从动态返回ref游标的函数中获取行,plsql,oracle11g,Plsql,Oracle11g,这是我创建的虚拟包,在函数测试中,select是动态的,平均数据列会发生变化。现在我的问题是,当我从任何其他过程或函数调用这个函数时,我得到了REF游标,那么如果我不知道它是动态返回哪个列,那么我怎么才能从那个游标中获取数据?< /P> < P>如果A1和A2是动态的,在运行时改变——你可以考虑使用DbMySQL而不是RefCurror。是一个如何动态获取行的示例,其中列的数量及其类型直到运行时才知道。您可以根据您的要求进行更改 CREATE OR REPLACE PACKAGE abc IS

这是我创建的虚拟包,在函数测试中,select是动态的,平均数据列会发生变化。现在我的问题是,当我从任何其他过程或函数调用这个函数时,我得到了REF游标,那么如果我不知道它是动态返回哪个列,那么我怎么才能从那个游标中获取数据?< /P> < P>如果A1和A2是动态的,在运行时改变——你可以考虑使用DbMySQL而不是RefCurror。是一个如何动态获取行的示例,其中列的数量及其类型直到运行时才知道。您可以根据您的要求进行更改

CREATE OR REPLACE PACKAGE abc
IS
 TYPE abc_cur IS REF CURSOR;

 FUNCTION TEST
  RETURN abc_cur;
 END;
/    

CREATE OR REPLACE PACKAGE BODY abc
IS
FUNCTION TEST
RETURN abc_cur
IS
v_select   VARCHAR2(2000);
 BEGIN
 v_select                   := 'Select a1,a2 from pqr';
 OPEN abc_cur FOR v_select;
 RETURN abc_cur;
 END TEST;
END abc;