loadclobfromfile方法+使用loadclobfromfile方法

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的内容
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值