每日一得

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

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

          key words: plsql,導出數(shù)據(jù),大數(shù)據(jù)量

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

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

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

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

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

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

          主站蜘蛛池模板: 阿瓦提县| 海丰县| 嘉义市| 阿巴嘎旗| 股票| 巴南区| 额敏县| 盐山县| 新丰县| 苍溪县| 策勒县| 涿州市| 襄垣县| 公主岭市| 安顺市| 桂平市| 台前县| 汉川市| 灌云县| 梅河口市| 将乐县| 涿鹿县| 万宁市| 仙居县| 共和县| 石首市| 嫩江县| 石渠县| 睢宁县| 兴宁市| 深州市| 连江县| 锦屏县| 靖州| 治县。| 张家界市| 琼海市| 那曲县| 青海省| 哈密市| 宝鸡市|