我现在做报表都是用存储过程返回数据,我的做法是这样:
   建一个临时表用来存放返回的数据,用临时表的原因主要是我的存储过程要拼SQL.拼SQL后 execute immediate插入到临时表, 存储过程有一个 out 的sys_refcursor类型的参数,用来返回数据.
   但这样我感觉不太好的地方就是每建一份报表,我就要新建一个临时表,不知大家是怎样做的?能不能不建临时表(主要是因为拼SQL返回数据)

解决方案 »

  1.   

    你直接返回一个动态游标,即你过程的out sys_refcursor类型的参数,这就已经是你的结果集了,然后报表用就是了 ,或者你外层应用中获取结果集就是了
      

  2.   

    我一般是建立一个比较通用的临时表.然后在程序里使用,比如表里含字段report_number报表号,
    建几个varchar2的字段,几个number的字段.
    注意临时表是指global temporary的临时表,不是指建完就删除的临时表.
      

  3.   

        这个是个不错的方法,你这个通用的临时表是不是要有比较多的varchar2的字段,number的字段才能比较通用吧
     
      

  4.   

    如果存储过程不太复杂,也可以不用临时表,直接用嵌套sql查询
      

  5.   

      主要是因为需要拼SQL的原因才要用到临时表的