Plsql 如何在PL/SQL中获取未知行类型的行?
我在oracle中有一个包含列表定义的表。每个定义都是sql字符串,返回具有“d”和“r”列的表。我想通过r值得到一些d值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
示例:
我的查询字符串是:
按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
,这样您就可以描述列并获取它们,而不必提前知道它们的名称或类型。