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

首頁 > 開發 > 綜合 > 正文

關于對bfile的基本操作全面介紹

2024-07-21 02:34:35
字體:
來源:轉載
供稿:網友

  bfile字段實際的文件存儲在文件系統中,字段中存儲的是文件定位指針.bfile對Oracle來說是只讀的,也不參與事務性控制和數據恢復
  
  bfile的基本操作如下:
  
  1.先在oracle數據庫中下面我們建立一個目錄別名,用于將文件定位指針映射到文件系統:
  
  create DirectorY 'tmpdir' AS '/tmp';
  tmpdir表示邏輯目錄名,'/tmp'是實際目錄。 注重該目錄oracle應該有讀權限
  
  然后根據需要授權
  GRANT READ ON DIRECTORY bfile_dir1 TO scott;
  建立一個含有bfile字段的表
  create table bfiletest(id number(3), fname bfile);
  
  2.插入數據
  這里需要使用bfilename來進行bfile字段的insert 或者 update操作
  代碼:
  
  INSERT INTO bfiletest
     VALUES (1, BFILENAME ('tmpdir', 'tmptest'));
  
  bfilename的參數1是DIRECTORY名,參數2是文件名。注重:這一行中插入的是
  
  一個指向/tmp/tmptest的文件定位指針映射,不是文件本身。
  
  3.讀取bfile
  
  通過使用dbms_lob包進行可以對bfile讀入到blob/clob對象中操作(只讀)
  代碼:
  
  CREATE OR REPLACE PROCEDURE loadLOBFromBFILE_proc IS
    Dest_loc    BLOB;
    Src_loc    BFILE := BFILENAME('tmpdir', 'tmptest');
  
  BEGIN
    SELECT blob_col INTO Dest_loc FROM aBLOBTable
      WHERE ID= 111
       FOR UPDATE;
  
    /* 假如bfile文件實際存在 */
    IF (DBMS_LOB.FILEEXISTS(Src_loc) != 0)
    THEN
      /* 打開bfile源文件 */
      DBMS_LOB.OPEN(Src_loc, DBMS_LOB.LOB_READONLY);
      /* 打開目標blob: */
      DBMS_LOB.OPEN(Dest_loc, DBMS_LOB.LOB_READWRITE);
      /*從文件中裝入 */
      DBMS_LOB.LOADFROMFILE(Dest_loc, Src_loc,DBMS_LOB.GETLENGTH(Src_loc));
      /* 記得關閉: */
      DBMS_LOB.CLOSE(Dest_loc);
      DBMS_LOB.CLOSE(Src_loc);
      COMMIT;
    END IF;
    EXCEPTION
      WHEN OTHERS THEN
       DBMS_OUTPUT.PUT_LINE('Operation failed');
  
  END;
  
  會話能打開多少個文件有init參數session_MAX_OPEN_FILES決定文件大小由OS決定, 32位的文件系統為每個文件2gb或4gb

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 尼勒克县| 射阳县| 庆云县| 乌海市| 贺兰县| 秦皇岛市| 饶河县| 潞西市| 民乐县| 临朐县| 吴江市| 得荣县| 建昌县| 遵义县| 闽清县| 烟台市| 纳雍县| 内江市| 彝良县| 华亭县| 长阳| 广平县| 鞍山市| 彭水| 远安县| 越西县| 汪清县| 博罗县| 阳春市| 台南县| 鹤峰县| 前郭尔| 贺兰县| 沈阳市| 东台市| 米易县| 瑞昌市| 保德县| 蕉岭县| 吉隆县| 衡水市|