国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

ORACLE中BFILE字段的使用研究

2024-08-29 13:48:07
字體:
供稿:網(wǎng)友

  
因?yàn)樽鲰?xiàng)目,需要使用BFILE字段存儲圖像文件,所以進(jìn)行了一些研究。


bfile字段實(shí)際的文件存儲在文件系統(tǒng)中,字段中存儲的是文件定位指針.bfile對

 

Oracle來說是只讀的,也不參與事務(wù)性控制和數(shù)據(jù)恢復(fù)

 

bfile的基本操作如下:

 

 

1.先在oracle數(shù)據(jù)庫中下面我們建立一個目錄別名,用于將文件定位指針映射到文

 

件系統(tǒng): 

 

 create DirectorY 'tmpdir' AS '/tmp'; 

 tmpdir表示邏輯目錄名,'/tmp'是實(shí)際目錄。 注重該目錄oracle應(yīng)該有讀權(quán)限

 

然后根據(jù)需要授權(quán)

 GRANT READ ON DIRECTORY bfile_dir1 TO scott;

建立一個含有bfile字段的表

 create table bfiletest(id number(3), fname bfile);

 建立一個含有BLOB字段的表


create table bloBTest(id number(3),ablob blob);

2.插入數(shù)據(jù)

 這里需要使用bfilename來進(jìn)行bfile字段的insert 或者 update操作

 

 INSERT INTO bfiletest

     VALUES (1, BFILENAME ('tmpdir', 'tmptest'));

 

   bfilename的參數(shù)1是DIRECTORY名,參數(shù)2是文件名。注重:這一行中插入的是

 

一個指向/tmp/tmptest的文件定位指針映射,不是文件本身。

 

3.讀取bfile

  

   通過使用dbms_lob包進(jìn)行可以對bfile讀入到blob/clob對象中操作(只讀) 

CREATE OR REPLACE PROCEDURE loadLOBFromBFILE_proc(
TID IN NUMBER,rfilename in varchar2,rfiledir in varchar2,upmessage out varchar2)
AS
   Dest_loc       BLOB;
   Src_loc        BFILE;
BEGIN
  INSERT INTO BLOBTEST(ID,ABLOB) VALUES(TID,EMPTY_BLOB()) RETURN ABLOB INTO DEST_LOC;

  Src_loc := BFILENAME(rfiledir,rfilename);
     

   /* 假如bfile文件實(shí)際存在 */
   IF (DBMS_LOB.FILEEXISTS(Src_loc) != 0)
   THEN
       /* 打開bfile源文件 */ 
       DBMS_LOB.OPEN(Src_loc, DBMS_LOB.LOB_READONLY);
       /* 打開目標(biāo)blob: */ 
       DBMS_LOB.OPEN(Dest_loc, DBMS_LOB.LOB_READWRITE);
       /*從文件中裝入 */
       DBMS_LOB.LOADFROMFILE(Dest_loc, Src_loc,DBMS_LOB.GETLENGTH(Src_loc));
   
    /* 記得關(guān)閉: */ 
       DBMS_LOB.CLOSE(Dest_loc);
       DBMS_LOB.CLOSE(Src_loc);
       COMMIT;
       upmessage := '0';
   END IF;
   EXCEPTION
       WHEN OTHERS THEN
          ROLLBACK;
          upmessage := '操作失敗';

END;

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 广丰县| 郧西县| 新巴尔虎左旗| 南部县| 历史| 泗阳县| 禹州市| 佛冈县| 凤山市| 申扎县| 绥化市| 城口县| 望谟县| 凤庆县| 旬邑县| 甘肃省| 碌曲县| 息烽县| 兴安县| 曲水县| 霍林郭勒市| 灵石县| 弥勒县| 泗洪县| 芒康县| 游戏| 定南县| 沁源县| 桃江县| 宜兰市| 深州市| 淮南市| 无极县| 阜新市| 莲花县| 鲁甸县| 蒙城县| 天全县| 克什克腾旗| 河曲县| 壶关县|