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

首頁 > 開發 > 綜合 > 正文

bfile的使用

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

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操作
[code:1:3575580dfc]
 INSERT INTO bfiletest
     VALUES (1, BFILENAME ('tmpdir', 'tmptest'));
[/code:1:3575580dfc]
   bfilename的參數1是DIRECTORY名,參數2是文件名。注重:這一行中插入的是

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

3.讀取bfile
  
   通過使用dbms_lob包進行可以對bfile讀入到blob/clob對象中操作(只讀) 
[code:1:3575580dfc]
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;
[/code:1:3575580dfc]

會話能打開多少個文件有init參數session_MAX_OPEN_FILES決定
文件大小由OS決定, 32位的文件系統為每個文件2gb或4gb

其它請參閱oracle聯機文檔.

上一篇:[技術]淺談字符集問題

下一篇:rman總結

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 克东县| 得荣县| 肃宁县| 合水县| 临澧县| 海南省| 盘山县| 灌阳县| 普安县| 全南县| 琼海市| 布拖县| 宝坻区| 红原县| 北碚区| 甘谷县| 门头沟区| 武平县| 正定县| 焉耆| 长宁区| 博爱县| 巴马| 象州县| 依兰县| 房山区| 新巴尔虎左旗| 华宁县| 固阳县| 阿勒泰市| 泗水县| 万州区| 望城县| 如东县| 伊川县| 确山县| 清苑县| 长治市| 永平县| 双城市| 上高县|