bfile是把文件放在数据库外,数据库只是记录了文件位置(可以指向表)
以sysdba身份登录
1.先在oracle数据库中建立一个目录别名,用于将文件定位指针映射到文件系统:
create DIRECTORY 'tmpdir' AS 'D:/tmp';
tmpdir表示逻辑目录名,' D:/tmp'是实际目录。 注意该目录oracle应该有读权限
2.根据需要授权
GRANT READ ON DIRECTORY tmpdir TO scott;
3.以scott用户登录
建立一个含有bfile字段的表
create table bfiletest(id number(3), fname bfile);
4.插入数据
这里需要使用bfilename来进行bfile字段的insert 或者 update操作
INSERT INTO bfiletest VALUES (1, BFILENAME ('TMPDIR', 'a.JPG'));
bfilename的参数1是DIRECTORY名,参数2是文件名。注意:这一行中插入的是
一个指向D:/tmp的文件定位指针映射,不是文件本身。
blob是把文件内容放在数据库里面,但也得借助bfile才能把文件内容存放到数据库。
BFIle的使用实例:
以sysdba身份登录
1.先在oracle数据库中建立一个目录别名,用于将文件定位指针映射到文件系统:
create DIRECTORY 'tmpdir' AS 'D:/tmp';
tmpdir表示逻辑目录名,' D:/tmp'是实际目录。 注意该目录oracle应该有读权限
2.根据需要授权
GRANT READ ON DIRECTORY tmpdir TO scott;
3.以scott用户登录
建立一个含有bfile字段的表
create table bfiletest(id number(3), fname bfile);
4.插入数据
这里需要使用bfilename来进行bfile字段的insert 或者 update操作
INSERT INTO bfiletest VALUES (1, BFILENAME ('TMPDIR', 'a.JPG'));
bfilename的参数1是DIRECTORY名,参数2是文件名。注意:这一行中插入的是
一个指向D:/tmp的文件定位指针映射,不是文件本身。
blob的使用
create table bfiletest(id number(3), fname blob);
用JDBC的java.sql.Blob接口生成blob参数传给INSERT语句