Sql 占位符列为null的oracle pro*c查询执行会降低执行速度

Sql 占位符列为null的oracle pro*c查询执行会降低执行速度,sql,c,oracle,oracle11g,oracle-pro-c,Sql,C,Oracle,Oracle11g,Oracle Pro C,我们要执行以下查询以读取批量记录集: SELECT c1, c2, c3 , ........, c30, null,null,null,...,null FROM TBL1 WHERE C5 = 5 ORDER BY c7, c8 请注意,额外的空值被放置以适应以通用方式完成的查询,因为TBL1可能有30个或更多列,我们需要单独捕获额外的列作为通用存储 EXEC SQL WHENEVER SQLERROR DO ...; EXEC SQL DECLARE xx CURSOR FOR

我们要执行以下查询以读取批量记录集:

SELECT  c1, c2, c3 , ........, c30, null,null,null,...,null 
FROM TBL1 
WHERE C5 = 5 
ORDER BY c7, c8
请注意,额外的空值被放置以适应以通用方式完成的查询,因为
TBL1
可能有30个或更多列,我们需要单独捕获额外的列作为通用存储

EXEC SQL WHENEVER SQLERROR DO ...;
EXEC SQL DECLARE xx CURSOR FOR xxx;     
EXEC SQL OPEN xxx;
EXEC SQL WHENEVER NOT FOUND goto notfound;
EXEC SQL FETCH xxx INTO :a1:a1_ind, :a2:a2_ind;
其中,
a1
a2
是结构数组,
a1\u ind
a2\u ind
是指标变量数组

但是查询需要花费很多时间来执行,如果我删除指示符变量,那么它会更快,可能还会有额外的空值,但是因为我不知道需要多少额外的列缓冲区,所以必须保持这种方式。 有什么改进的建议吗