oracle使用内置的utl_file工具包 批量导出数据

create or replace directory  DIR_EXCEL  as 'd:/download/excel';--创建一个文件存储目录变量,后面存储过程会使用到,目录要在电脑上没有,要手动创建,程序不会自动创建

create or replace procedure Pro_EXCEL is
  out_file    utl_file.file_type; --定义一个文件类型
begin


dbms_output.put_line('开始');
  out_file    := utl_file.fopen('DIR_EXCEL', 'ceshiw.xls', 'W');
dbms_output.put_line('开始写文件抬头');
  --抬头
  utl_file.put(out_file, '项目' || chr(9));
  utl_file.put(out_file, '描述' || chr(9));
  utl_file.put(out_file, '金额' || chr(9));
  utl_file.put_line(out_file, '');


  for o in (select t.id_project || chr(9) vin, t.des || chr(9) autoid,t.amoun|| chr(9) amount
              from paymentinfo t 
             ) loop

    utl_file.putf(out_file, o.vin);
    utl_file.putf(out_file, o.autoid);
      utl_file.putf(out_file, o.amount);
    /*utl_file.put(out_file, convert('中文字', 'ZHS16GBK'));*/--汉子时转化字符格式,解决汉子乱码
    utl_file.put_line(out_file, '');

  end loop;
  utl_file.fflush(out_file);
  utl_file.fclose(out_file); --关闭文件流

dbms_output.put_line('结束');
  --处理异常
exception
  when others then
    rollback;
  dbms_output.put_line('异常');
  utl_file.fclose(out_file); --关闭文件流,防止异常关闭
end Pro_EXCEL;
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值