<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-88  評論-77  文章-48  trackbacks-0

    使用PL/SQL從數據庫中讀取BLOB對象

    作者:eygle
    出處:
    http://www.eygle.com/blog
    日期:April 30, 2005
    瀏覽次數: 507
    本文鏈接:
    http://www.eygle.com/archives/2005/04/eoaplsqloeaoeae.html

    ? 使用存儲過程(PL/SQL)向數據庫中存儲BLOB對象 | Blog首頁 | 五一的生活 ?


    注意:本文方法僅適用于Oracle10g,由于在Oracle9i中存在Bug,不能使用此方法。
    在Oracle9i中,可以通過java/c編碼實現,但是可能在目標文件名為中文時存在問題。
    1.確認現有對象

    SQL> col fdesc for a30
    SQL> select fid,fname,fdesc from eygle_blob;
    
           FID FNAME                                              FDESC
    ---------- -------------------------------------------------- ------------------------------
             1 ShaoLin.jpg                                        少林寺-康熙手書
             2 DaoYing.jpg                                        倒映
    

    2.創建存儲Directory
    SQL> connect / as sysdba
    Connected.
    SQL> create or replace directory BLOBDIR as 'D:\oradata\Pic';
    
    Directory created.
    
    SQL>
    SQL> grant read,write on directory BLOBDIR to eygle;
    
    Grant succeeded.
    
    SQL>
    

    3.創建存儲過程
    SQL> connect eygle/eygle
    Connected.
    SQL>
    SQL> CREATE OR REPLACE PROCEDURE eygle_dump_blob (piname varchar2,poname varchar2) IS
      2    l_file      UTL_FILE.FILE_TYPE;
      3    l_buffer    RAW(32767);
      4    l_amount    BINARY_INTEGER := 32767;
      5    l_pos       INTEGER := 1;
      6    l_blob      BLOB;
      7    l_blob_len  INTEGER;
      8  BEGIN
      9    SELECT FPIC
     10    INTO      l_blob
     11    FROM      eygle_blob
     12    WHERE  FNAME = piname;
     13
     14    l_blob_len := DBMS_LOB.GETLENGTH(l_blob);
     15    l_file := UTL_FILE.FOPEN('BLOBDIR',poname,'wb', 32767);
     16
     17    WHILE l_pos < l_blob_len LOOP
     18      DBMS_LOB.READ (l_blob, l_amount, l_pos, l_buffer);
     19      UTL_FILE.PUT_RAW(l_file, l_buffer, TRUE);
     20      l_pos := l_pos + l_amount;
     21    END LOOP;
     22
     23    UTL_FILE.FCLOSE(l_file);
     24
     25  EXCEPTION
     26    WHEN OTHERS THEN
     27      IF UTL_FILE.IS_OPEN(l_file) THEN
     28        UTL_FILE.FCLOSE(l_file);
     29      END IF;
     30      RAISE;
     31  END;
     32  /
    
    Procedure created.
    

    4.取出數據
    SQL> host ls -l d:\oradata\Pic
    total 7618
    -rwxrwxrwa   1 gqgai           None            2131553 Apr 19 10:12 DaoYing.jpg
    -rwxrwxrwa   1 gqgai           None            1768198 Apr 19 10:12 ShaoLin.jpg
    
    SQL> exec eygle_dump_blob('ShaoLin.jpg','01.jpg')
    
    PL/SQL procedure successfully completed.
    
    SQL> host ls -l d:\oradata\Pic
    total 11072
    -rwxrwxrwa   1 Administrators  SYSTEM          1768198 Apr 26 07:16 01.jpg
    -rwxrwxrwa   1 gqgai           None            2131553 Apr 19 10:12 DaoYing.jpg
    -rwxrwxrwa   1 gqgai           None            1768198 Apr 19 10:12 ShaoLin.jpg
    
    SQL>
    SQL> exec eygle_dump_blob('DaoYing.jpg','02.jpg')
    
    PL/SQL procedure successfully completed.
    
    SQL> host ls -l d:\oradata\Pic
    total 15236
    -rwxrwxrwa   1 Administrators  SYSTEM          1768198 Apr 26 07:16 01.jpg
    -rwxrwxrwa   1 Administrators  SYSTEM          2131553 Apr 26 07:19 02.jpg
    -rwxrwxrwa   1 gqgai           None            2131553 Apr 19 10:12 DaoYing.jpg
    -rwxrwxrwa   1 gqgai           None            1768198 Apr 19 10:12 ShaoLin.jpg
    
    

    posted on 2006-04-27 09:25 崛起的程序員 閱讀(439) 評論(0)  編輯  收藏 所屬分類: oracle

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲理论片在线中文字幕| 亚洲AV福利天堂一区二区三| 亚洲一级毛片免费看| 在线看片免费人成视久网| 久久久久亚洲AV无码麻豆| 久久久久高潮毛片免费全部播放 | 国产精品亚洲五月天高清| 国产无遮挡吃胸膜奶免费看 | 亚洲免费人成视频观看| 亚洲国产综合精品| 免费无码又黄又爽又刺激| 亚洲无人区码一二三码区别图片| 免费鲁丝片一级在线观看| 色欲色欲天天天www亚洲伊| 免费A级毛片无码A| 中文毛片无遮挡高清免费| 亚洲av日韩av天堂影片精品| 69av免费视频| 亚洲s码欧洲m码吹潮| 亚洲视频在线免费| 一级毛片成人免费看免费不卡| 亚洲国产综合自在线另类| 免费观看大片毛片| 一区二区视频在线免费观看| 亚洲网址在线观看你懂的| 最近2019中文免费字幕| 男女猛烈无遮掩视频免费软件 | 美女黄网站人色视频免费国产| 免费福利在线观看| 亚洲小视频在线观看| 野花高清在线观看免费3中文| 老湿机一区午夜精品免费福利| 亚洲国产婷婷六月丁香| 成人免费午夜无码视频| 日韩在线观看视频免费| 亚洲精品永久www忘忧草| 免费国产成人高清在线观看麻豆| 中国人免费观看高清在线观看二区| 亚洲色欲www综合网| 亚洲国产成人精品女人久久久 | 99麻豆久久久国产精品免费|