每日一得

          不求多得,只求一得 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 閱讀(4285) 評論(1)  編輯  收藏 所屬分類: Oracle

          評論

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

          主站蜘蛛池模板: 通渭县| 林周县| 桓台县| 安丘市| 越西县| 南康市| 达孜县| 桂林市| 翁牛特旗| 灵武市| 个旧市| 公主岭市| 华坪县| 土默特左旗| 霸州市| 鲁山县| 区。| 平山县| 兰溪市| 乐陵市| 高要市| 灌阳县| 双桥区| 东乡族自治县| 朝阳市| 吕梁市| 女性| 毕节市| 枣阳市| 耒阳市| 封开县| 哈尔滨市| 营口市| 滦平县| 鄂温| 安吉县| 达日县| 云安县| 彩票| 寻乌县| 仪陇县|