Oracle PL / SQL如何存储和获取动态多列查询

问题描述 投票:0回答:1

我在这里尝试动态PL / SQL事情。我无法获取列动态查询。我正在迭代列的名称以连接完整查询,以便在另一个表上执行。

sql_req := 'select '; 
for c in  (SELECT name_col  from TAB_LISTCOL)
loop
  sql_req := sql_req || 'sum(' || c.name_col || '),'; 
end loop; 
sql_req := sql_req || ' from ANOTHER_TAB '; 

并且当我尝试使用EXECUTE IMMEDIATE或游标或INTO / BULK COLLECT东西执行它或只是为了获取它时,我无法对结果进行迭代。我试了很多你能帮我一下吗?还是不可能?

ps:我知道昏迷是错误的,但是我的代码比这更复杂:我不想放更多东西

sql oracle dynamic
1个回答
0
投票

如果只想获取字符串列,则可以使用listagg

select listagg(name_col, ',') WITHIN GROUP (ORDER BY null) from TAB_LISTCOL
© www.soinside.com 2019 - 2024. All rights reserved.