loadclobfromfile方法
loadclobfromfile()
1用于将bfile所指向的外部文件数据加载到clob/noclob中。
2加载从指定位置的偏移量开始,加载指定数据量的字节
语法
dbms_lob.loadclobfromfile(
dest_clob in out nocopy clob/noclob,
src_bfile in bfile,
amount in integer,
dest_offset in out integer,
src_offset in out integer,
src_csid in number,
lang_context in out integer,
waring out integer
)
参数说明
dest_clob:加载的目标dest_clob
src_bfile:读取文件的指针bfile
amount:读取的最大数量
dest_offset:开始写数据的位置(写数据的偏移量)
src_offset:开始读数据的位置(读数据的偏移量)
src_csid:是src_bfile的字符集
lang_context:加载的语言环境
waring:表示加载时候的一个警告信息
测试数据
create table bfile_table(
id number,
bfile_column bfile not null
);
create directory MYBFILE as 'F:\test\bfile';
--添加数据
--函数bfilename(目录地址,文件名)
insert into bfile_table values(1,bfilename('MYBFILE','bfile01.txt'));
select * from bfile_table;
create table clob_table(
id number,
clob_column clob not null
);
--添加数据
--to_clob 将字符数据转换为clob类型
insert into clob_table values(1,to_clob('this is clob data'));
insert into clob_table values(2,to_clob('clob is here'));
select * from clob_table;
使用loadclobfromfile方法
create or replace procedure loadclobfromfile_lob
as
dest_clob clob;
src_bfile bfile;
amount integer:=dbms_lob.lobmaxsize;--最大字符数
dest_offset integer:=6;
src_offset integer:=1;
src_csid integer:=dbms_lob.default_csid;
lang_context integer:=dbms_lob.default_lang_ctx;
waring integer:=dbms_lob.warn_inconvertible_char;
begin
select clob_column into dest_clob from clob_table where id=1 for update;
select bfile_column into src_bfile from bfile_table where id=1 for update;
dbms_lob.open(src_bfile);--打开指针src_bfile所指向的文件
dbms_lob.loadclobfromfile(
dest_clob,
src_bfile,
amount,
dest_offset,
src_offset,
src_csid,
lang_context,
waring
);
end loadclobfromfile_lob;
/
exec loadclobfromfile_lob;
select * from clob_table;
bfile01.txt的内容