使用utl_file将oracle数据库中数据写入excel文件

本文介绍了一个使用utl_file程序包将Oracle数据库中的数据导出到Excel文件的过程。通过创建纪录、游标取数据、写入文件,详细讲解了在处理中遇到的如何换列、类型转化和存储路径设置等问题,并给出了解决方案和示例存储过程。
摘要由CSDN通过智能技术生成
    最近做的一个项目,其中有一块的功能是将数据导出为excel文件。我使用了oracle的utl_file程序包。
主要实现思路:
    1、声明一个纪录,用来存储导出的数据;
    2、使用游标取数据到纪录中;
    3、使用utl_file将纪录中的数据写入excel文件;
    4、循环执行步骤2和3,完成数据的导出。
    做的过程中主要遇到的问题:
    1、excle文件中写数据如何写入下一列;
          使用TAB字符完成excel中横向跳格,excel中TAB字符表示单元格的结尾,其中使用了chr()函数,
应用举例如下:
         select U.USER_NAME||chr(9),U.ACCOUNT||chr(9) from USER U
                                            例句1
          例句1作为游标的主体,取出的数据每项都包含一个TAB字符,使用utl_file.put()往excel文件中
写数据时会自动跳格
    2、声明的纪录中各项的类型问题
           这个问题的产生主要是在类型的强转化时产生。如例句1种的U.ACCOUNT为number型时,
添加||chr(9)时oracle会对进行强转化;当然这里的转化不会有问题(number转化为varchar2),
但是当这种强转换还是会出现问题的,如声明的纪录里某个属性声明为用户自己定义的一种类型,
oracle无法进行转换,则会报错。解决的办法很简单,可以将纪录的属性都声明为varchar类型,但是要注意长度。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值