`
yanghongxia9
  • 浏览: 115087 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

bfile的使用

 
阅读更多
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

其它请参阅oracle联机文档.
分享到:
评论

相关推荐

    Oracle BLOB,BFILE大文件存储和FTP传输文件

    使用Oracle的大对象存储类型BLOB,BFILE存储和读取大文件,也包括使用FTP传输文件,如果使用FTP传输文件,需要在服务器端安装Serv-U软件。数据库为Oracle 10g,代码为Visual Studio 2008 VC++开发,软件中的代码有BLOB...

    Bfile例子(找了很久才找到的)

    Bfile例子(找了很久才找到的),希望对不熟悉Bfile的朋友有所帮助。

    java操作bfile

    本文详细介绍的oracle数据库如何存储bfile

    前端开源库-bfile.zip

    3. **多线程处理**:对于大文件,为了提高用户体验,可能会使用Web Workers进行后台处理,避免阻塞主线程。 4. **进度条显示**:在文件上传或下载过程中,提供进度反馈是用户友好的表现。"bfile"可能提供了进度条...

    oracle对大对象类型操作:blob,clob,nclob,bfile

    Oracle数据库系统支持对大型数据对象(LOBs,Large Objects)的操作,这包括BLOB、CLOB、NCLOB和BFILE四种类型。每种类型都有其特定的用途和特性,适用于存储不同类型的大数据。 1. BLOB(Binary Large Object): ...

    afile_to_bfile.rar_a to b

    在这个例子中,`afile_to_bfile.c`可能是实现此功能的源代码文件,它将使用这些函数来完成文件之间的内容转移。 1. **打开文件**:`fopen()`函数接受两个参数,一个是文件名,另一个是访问模式(如"r"代表读,"w...

    前端开源库-bfile

    前端开源库-bfilebfile,node.js的文件系统包装器

    idCryptRust:命令行实用工具,用于加密解密DOOM的.bfile和.blang文件

    命令行实用程序,用于加密/解密DOOM的.bfile和.blang文件。 用法 idCrypt <file> 该工具将尝试解密文件是否以.blang或.bfile结尾,否则进行加密。 编译中 Linux / macOS 要进行编译,您需要使用rustup设置一个...

    Killtest1Z0-147.pdf

    - 选项B错误,DBMS_LOB没有BFILENAME函数,定位BFILE通常使用DBMS_LOB.FOPEN或DBMS_LOB.GETBFILENAME。 - 选项C错误,DBMS_LOB.FILEEXISTS不是用来查找BFILE的位置,而是检查一个BFILE是否存在。 - 选项D正确,...

    《CASIO fx-9860G SDK Libraries》卡西欧图形计算器SDK

    - **Bfile_OpenMainMemory**、**Bfile_CreateMainMemory**、**Bfile_RenameMainMemory**、**Bfile_DeleteMainMemory**:这些函数用于主内存相关的操作。 - `int Bfile_OpenMainMemory(char *filename, char mode);`...

    详细的oracle应用

    - **创建含BFILE类型的表**:使用`CREATE TABLE {表名} (id NUMBER, fname BFILE);`命令可以创建包含BFILE类型的表。 - 示例:`CREATE TABLE bfile_test (id NUMBER(3), fname BFILE);` - **插入BFILE数据**:使用`...

    oracle常用命令

    目录对象在Oracle中用于存储操作系统路径,便于BFILE类型的使用。 2. **权限授予** - `grant read on directory TNPDIR to SCOTT;` 授予用户对目录的读取权限是使用BFILE类型的前提。 3. **BFILE类型使用** - ...

    数据库基础

    §10.1.11 使用 product_user_file来限制用户使用产品 220 §10.2 常用技巧 221 §10.2.1 long 类型的查询 222 §10.2.2 如何确定执行时间 222 §10.2.3 如何终止用户会话 222 §10.2.4 用TRANSLATE对数据加密和解密...

    oracle Blob

    Blob的使用涉及多个步骤,包括创建、插入、读取和更新。 1. 创建Blob字段: 当创建包含Blob字段的表时,需要指定表空间和数据块大小。例如: ```sql CREATE TABLE tLob ( no NUMBER(4), name VARCHAR2(10), ...

    oracle数据库教程

    - 使用BFILE前,需通过`CREATE DIRECTORY`命令创建一个数据库目录对象,映射到实际的物理路径,并赋予用户相应的访问权限。 - 插入BFILE时,需要指定目录名和文件名,例如`BFILENAME('directory_name', 'file_name...

    oracle资料#############

    根据提供的文件信息,我们可以从中提炼出与Oracle数据库相关的多个知识点,包括基本的命令操作、用户管理、表空间管理以及BFILE对象的使用等。接下来,将对这些知识点进行详细的阐述。 ### Oracle数据库基础命令 #...

    Oracle8i_9i数据库基础

    §10.1.11 使用 product_user_file来限制用户使用产品 220 §10.2 常用技巧 221 §10.2.1 long 类型的查询 222 §10.2.2 如何确定执行时间 222 §10.2.3 如何终止用户会话 222 §10.2.4 用TRANSLATE对数据加密和解密...

    oracle命令大全

    Oracle是一种广泛使用的数据库管理系统,它以其性能稳定、可靠性高而闻名。为了更好地使用Oracle数据库,掌握一系列的命令是必不可少的。接下来,我将详细介绍从文件中提取出的Oracle命令及其相关知识点。 首先,...

    ORACLELOB大对象处理[定义].pdf

    - 对于BFILE,使用`BFILENAME`函数指定文件的逻辑路径,但不需立即关联物理路径。 4. **逻辑目录关联**: - 使用`CREATE DIRECTORY`创建逻辑目录,并将其与实际文件系统的路径关联。 - 授予用户创建目录的权限,...

Global site tag (gtag.js) - Google Analytics