BFILE类型存储的文件必须在Oracle服务器上,或服务器能访问到的路径上。
用存储过程实现如下:
先建立一个目录对象:
CREATE DIRECTORY 目录名 AS '操作系统实际的目录'CREATE PROCEDURE DISPATCHMIS.P_TEST(av_fileName varchar2)
IS
v_fil BFILE;
BEGIN
v_fil := BFILENAME('目录', av_fileName);
INSERT INTO TABNAME (BFILE字段名)VALUES(v_fil );
COMMIT;
END;
用存储过程实现如下:
先建立一个目录对象:
CREATE DIRECTORY 目录名 AS '操作系统实际的目录'CREATE PROCEDURE DISPATCHMIS.P_TEST(av_fileName varchar2)
IS
v_fil BFILE;
BEGIN
v_fil := BFILENAME('目录', av_fileName);
INSERT INTO TABNAME (BFILE字段名)VALUES(v_fil );
COMMIT;
END;
解决方案 »
- snapshot too old: rollback segment number with name "" too small
- 关于权限和角色的问题
- SQL语句
- 一道及其变态的Oracle期末考试题,唯有高手能解答呀!!!
- 如何利用oracle第三方工具做数据库的性能优化
- oracle 10g 无法安装?? 求救!!
- 求一oracle sql语句
- delphi 中的ADO怎么访问同义词呢?
- 在sql/plus中执行存储过程,执行完成后如何才能不输出“PL/SQL 过程已成功完成。”这提示?
- 哪位大神帮我看看这条sql!!!
- 关于文章(oralce 连接另一个oralce ,oralce 连接 sqlserver)的问题----急
- SQL查询语句问题
create table proposal
(proposal_id number(10),
recipient_name varchar2(25),
proposal_name varchar2(25),
short_description varchar2(1000),
proposal_text clob, --字符型LOB,字符数据,最长为4GB,存储在数据库中
budget blob, --二进制LOB,二进制数据,最长为4GB,存储在数据库中
cover_letter bfile, --二进制文件,存储在数据库外部的只读二进制数据,其长度受操作系统限制中
constraint proposal_pk primary key (proposal_id))
--创建目录,用于bfile外部文件的使用
create or replace directory proposal_dir as 'c:\lob';
--数据插入,如果一个内部存储的lob字段为NULL,那么在更新为非NULL值前,必须设定为空位置指针
--BLOB空文件使用EMPTY_BLOB()
--CLOB空文件使用EMPTY_CLOB()
--NCLOB空文件使用EMPTY_CLOB()
--BFILE空文件使用BFILENAME,oracle不维护外部文件的数据完整性
insert into proposal
(proposal_id,recipient_name,proposal_name,short_description,
proposal_text,
budget,
cover_letter)
values
(1,'DOT RODALE','MAINTAIN ORGANIC GARDEN',NULL,
'THIS IS THE TEXT OF A PROPOSAL TO MAINTAIN AN ORGANIC GARDEN.',
EMPTY_BLOB(),
BFILENAME('proposal_dir','P2.TXT'));