【发布时间】:2019-11-02 03:17:02
【问题描述】:
我有一个报告函数,它接受 SQL 查询并在其上生成一些聚合和转换。所有查询都返回具有以下结构的列:ID、COL1、COl2、COL3.... COL25。
该函数将结果提取到游标中以便对其进行处理,并将行存储在变量中,如下所示:
如下:
OPEN C1 FOR V_SQL;
LOOP
CASE COLUMN_COUNT
WHEN 3 THEN
FETCH C1 INTO ROW.C1,ROW.C2,ROW.C3;
WHEN 4 THEN
FETCH C1 INTO ROW.C1,ROW.C2,ROW.C3,ROW.C4;
WHEN 5 THEN
FETCH C1 INTO ROW.C1,ROW.C2,ROW.C3,ROW.C4,ROW.C5;
... (until 29 columns)
现在需要支持多达 100 列。这会使代码非常大。如何以动态方式完成此操作,例如数组?
【问题讨论】:
-
看看oracleDBMS_SQL动态sql包
-
对于一个年轻程序员 @OldProgrammer,这是一个很好的学习任务,感谢您的启发;)