将文本文件插入Oracle表中

--1、建立测试表
create table TA
(
  ID       INTEGER,
  FILENAME BLOB
);
--2、建立数据库目录Directories
create or replace directory XT_MRTMPDIR
  as 'E:/oracle/product/10.2.0/oradata/TempMRU';
--3、创建存储过程
create or replace procedure insert_txt(txt_dir varchar2,txt_name varchar2)
is
 txt_blob blob;
 txt_bfile bfile;
begin
  /*将通过empty_blob()函数将类型为blob的列初始化为空以便以后填充*/
  insert into ta values(1,empty_blob())
  return ta.filename into txt_blob;

  txt_bfile := bfilename(txt_dir,txt_name); --获得定位器指向的目录和文件
  if (dbms_lob.fileexists(txt_bfile)!=0) then --如果文件定位器指向的文件存在
    dbms_lob.fileopen(txt_bfile,dbms_lob.file_readonly); --打开目标文件

    /*将文件字节流数据加载到指定的LOB类型变量中*/
    dbms_lob.loadfromfile(txt_blob,txt_bfile,dbms_lob.getlength(txt_bfile));

    dbms_lob.fileclose(txt_bfile);--关闭文件
    commit;
    dbms_output.put_line('已经从'||txt_dir||'目录中读取了文本'||txt_name||'向表中插入');

  else--如果文件定位器指向的文件不存在
    dbms_output.put_line('文件没找到');
  end if;

  exception when others then
  dbms_output.put_line(sqlerrm);
end;

--4、在E:/oracle/product/10.2.0/oradata/TempMRU创建要插入的aa.txt和bb.csv文件

--5、调用存储过程
begin
insert_txt('XT_MRTMPDIR','aa.txt');
end;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值