Plsql 如何在PL/SQL中获取未知行类型的行?

Plsql 如何在PL/SQL中获取未知行类型的行?,plsql,Plsql,我在oracle中有一个包含列表定义的表。每个定义都是sql字符串,返回具有“d”和“r”列的表。我想通过r值得到一些d值 示例: 我的查询字符串是:按1的顺序从一些表中选择一些d列,一些r列 我的PL/SQL代码是: DECLARE query_str VARCHAR2(2000) := 'SELECT SOME_COLUMN d, SOME_COLUMN2 r from SOME_TABLE order by 1'; return_str VARCHAR2(2

我在oracle中有一个包含列表定义的表。每个定义都是sql字符串,返回具有“d”和“r”列的表。我想通过r值得到一些d值
示例:
我的查询字符串是:
按1的顺序从一些表中选择一些d列,一些r列
我的PL/SQL代码是:

DECLARE
        query_str VARCHAR2(2000) := 'SELECT SOME_COLUMN d, SOME_COLUMN2 r from SOME_TABLE order by 1';
        return_str VARCHAR2(2000);
        TYPE LovCurTyp IS REF CURSOR;
        v_lov_cursor LovCurTyp;
    --And there is my problem:
        lov_record UNKNOWN_TYPE_OF_SOME_TABLE%ROWTYPE;

BEGIN
        OPEN v_lov_cursor FOR query_str;
        LOOP
        FETCH v_lov_cursor INTO lov_record;
        EXIT WHEN v_lov_cursor%NOTFOUND;
        --Get return_str here
        END LOOP;
        CLOSE v_lov_cursor;

        return return_str;
END;

所以我的问题是:如何获取未知行类型的行,或者可能有另一种方法来执行我所描述的操作?

不清楚您在问什么。你能详细解释一下你真正想要达到的目标吗?这个问题经常出现。
query\u str
中的查询真的需要动态吗?如果是这样,您需要
DBMS\u SQL.to\u CURSOR\u NUMBER
v\u lov\u CURSOR
转换为
DBMS\u SQL
,这样您就可以描述列并获取它们,而不必提前知道它们的名称或类型。