每日一得

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

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

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

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

          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,可能會覺得之前的很多時間都白白浪費了。  回復  更多評論
            

          主站蜘蛛池模板: 富民县| 南皮县| 溧阳市| 滕州市| 鄄城县| 黔西县| 乌鲁木齐县| 金堂县| 磴口县| 常州市| 珲春市| 桑日县| 巴中市| 阿坝县| 饶平县| 徐闻县| 铜鼓县| 翁牛特旗| 廊坊市| 武隆县| 卫辉市| 房山区| 中江县| 宁德市| 喀什市| 景德镇市| 延寿县| 深圳市| 乌海市| 淮滨县| 两当县| 喀喇沁旗| 垫江县| 伊吾县| 武强县| 洛宁县| 罗平县| 吉隆县| 贡嘎县| 汶川县| 普定县|