每日一得

          不求多得,只求一得 about java,hibernate,spring,design,database,Ror,ruby,快速開發
          最近關心的內容:SSH,seam,flex,敏捷,TDD
          本站的官方站點是:顛覆軟件

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            220 隨筆 :: 9 文章 :: 421 評論 :: 0 Trackbacks

          key words: plsql,導出數據,大數據量

          最近的賬務的項目中需要導出Excel報表,數據量比較大,解決方案如下 :

          1.通過plsql在服務器端查詢出符合要求的紀錄,然后直接寫到文本文件中

          2.在web端通過流的方式讀文本文件,通過POI寫到Excel,將生成的Excel流寫到respoonse實現下載

          這樣做的好處是不必一次性將滿足條件的紀錄全部取出來,而是通過流的方式.

          這個方式原來在處理Blob類型的字段時有直接的getStream來支持的,這次普通的數據只好通過文件的方式來實現.

          貼一段sample的代碼


          sql 代碼
           
          1. create or replace procedure alex_table_to_txt(filepath varchar2,filename varchar2) is  
          2. --var  
          3. v1 alex2.name%type;  
          4. v2 alex2.address%type;  
          5. v3 alex2.groupname%type;  
          6.   
          7. output varchar2(200);  
          8.   
          9. --file var  
          10. file_handle UTL_FILE.FILE_TYPE;  
          11.   
          12. cursor readtable is select t.name,t.address,t.groupname from alex2 t;  
          13. begin  
          14. file_handle:=utl_file.fopen(filepath,filename,'w',6000);  
          15. open readtable;  
          16.   
          17. loop  
          18. fetch readtable into v1,v2,v3;  
          19. exit when readtable%notfound;  
          20. output:=v1 || ',' || v2 || ',' || v3 ;  
          21. utl_file.put_line(file_handle,output);  
          22.   
          23. end loop;  
          24.   
          25. close readtable;  
          26. utl_file.fclose(file_handle);  
          27. end alex_table_to_txt;  
          28. /  

           

          歡迎討論你的方案

          posted on 2007-08-18 12:46 Alex 閱讀(4279) 評論(1)  編輯  收藏 所屬分類: Oracle

          評論

          # re: 從數據庫導出大數據量的文件的解決方案 2007-08-20 09:19 dixson
          如果你在使用了poi一段時間以后,你再去使用jxl,可能會覺得之前的很多時間都白白浪費了。  回復  更多評論
            

          主站蜘蛛池模板: 托克逊县| 中西区| 房产| 衢州市| 双鸭山市| 玛多县| 安庆市| 璧山县| 皋兰县| 淄博市| 商水县| 万盛区| 黄山市| 文昌市| 民丰县| 灵丘县| 太和县| 颍上县| 黄山市| 化隆| 大化| 陆河县| 余姚市| 天津市| 福鼎市| 广南县| 无棣县| 鄂尔多斯市| 太谷县| 桃江县| 西丰县| 大埔县| 奉贤区| 宜春市| 内江市| 甘孜| 泽州县| 海林市| 石狮市| 延川县| 襄垣县|