最近研究oracle存储过程导出excel文件,但是还没有实现分sheet页,还在继续研究;

oracle的utl_file包访问文件,必须设置文件访问路径,配置方法如下:

1、alter    system    set    utl_file_dir='e:\utl'    scope=spfile;
2、在init.ora文件中,配置如下:  UTL_FILE=E:\utl或者UTL_FILE_DIR=E:\utl  
SQL> alter system set utl_file_dir='/u01/app/oracle' scope=spfile;

System altered.

SQL> startup force;                 

SQL> show parameter utl_file

到出SQL存储过程如下:

create or replace procedure sql_to_csv(p_query    in varchar2, -- plsql文p_dir      in varchar2, -- 导出的文件放置目录p_filename in varchar2, -- csv名p_header   in varchar2 --表头) isl_thecursor    integer default dbms_sql.open_cursor;l_colcnt       number := 0;l_separator    varchar2(2) := ',';l_desctbl      dbms_sql.desc_tab;p_max_linesize number := 32000;lv_sql         varchar2(32000);
beginexecute immediate 'alter session set nls_date_format=''yyyymmdd hh24:mi:ss''';lv_sql := 'declarel_output utl_file.file_type;l_row varchar2(32000) := null;cursor c is ' || p_query || ';type tp_rows is table of c%rowtype index by pls_integer;r tp_rows;
beginl_output := utl_file.fopen(''' || p_dir || ''', ''' ||p_filename || '.csv'', ''w'', ' || p_max_linesize || ');utl_file.put_line(l_output,''' || p_header ||''');open c;loopfetch c bulk collect into r;for i in 1..r.count loopl_row := ';dbms_sql.parse(l_thecursor, p_query, dbms_sql.native);dbms_sql.describe_columns(l_thecursor, l_colcnt, l_desctbl);for i in 1 .. l_colcnt loopif i > 1 thenlv_sql := lv_sql || ' || ''' || l_separator || ''' || ';end if;lv_sql := lv_sql || 'r(i).' || l_desctbl(i).col_name;end loop;dbms_sql.close_cursor(l_thecursor);lv_sql := lv_sql || ';utl_file.put_line(l_output,l_row,true);end loop;exit when c%notfound;end loop;close c;utl_file.fclose( l_output );
exceptionwhen others thenutl_file.fclose( l_output );dbms_output.put_line(dbms_utility.format_error_backtrace);raise;
end;';dbms_output.put_line(lv_sql);execute immediate lv_sql;-- utl_file.fremove(p_dir,to_char(sysdate,'yyyymmdd_')|| p_filename||'.csv');-- utl_file.frename(p_dir,p_filename||'.tmp',p_dir,to_char(sysdate,'yyyymmdd_')|| p_filename||'.csv');end;

oracle存储过程导出scv文件相关推荐

  1. oracle中xml如何存储过程,oracle存储过程生成xml文件

    oracle存储过程生成xml文件 CREATE OR REPLACE PROCEDURE Pro_OracleToXML(personid varchar2,name varchar2,addres ...

  2. Oracle导入导出dmp文件步骤

    Oracle导入导出dmp文件步骤 加粗部分需按需改变,导入时的表空间名与导出前一致 导出dmp文件 第一步在sqlplus中运行: 第二步,在第一步运行完后,将查询出的结果都执行一遍 第三步打开电脑 ...

  3. Oracle EBS 导出EXCEL文件CSS样式应用

    Oracle EBS 导出EXCEL文件CSS样式应用 在css中加入:mso-number-format定义数据格式,格式可以在excel中查看自定义格式,具体可以参考一下: mso-number- ...

  4. linux服务器oracle数据库导出dmp文件功能演示,备份数据库命令。exp命令显示command not found解决方法,EXP-00028: 无法打开dmp进行写入问题解决

    默认需要切 oracle 用户才可以用,命令su - oracle. 直接用 exp 命令会显示 command not found nctest205:~ # exp ncc_auto_0513/1 ...

  5. oracle存储过程导出查询结果,ORACLE如何实现函数、包、存储过程的导入和导出

    建 议可以用常规的检查,检查一下:数据字典信息/exp 导出结构检查 1.检查 SELECT * FROM ALL_SOURCE t WHERE T.OWNER = '要查询用户' AND t.TYP ...

  6. Oracle如何导出dmp文件

    一:拥有oracle用户和密码 导出dmp文件 进入目录:/home/oracle/20181021 执行命令: exp 导入数据库用户名/密码 file=导出的dmp文件 log=日志名称 owne ...

  7. oracle 导入导出dum文件

    dmp文件导出 dmp文件导出用的比较多的一般是三种,他们分别是:导出整个数据库实例下的所有数据.导出指定用户的所有表.导出指定表. 这里已我的数据库为例,进行介绍,我的Oracle数据库实例为&qu ...

  8. oracle导入导出DMP文件【整个步骤】

    一.导入 1.创建表空间 //DDTECH表空间名称 create tablespace DDTECH datafile 'E:\app\oracle\oradata\DDTECH\TABLESPAC ...

  9. oracle 存储过程导出sql语句 导出为文件

    //使用方法 sql> 输入如↓注意文件写入权限 SET echo off; SET heading off; SET feedback off; spool /home/oracle/temp ...

  10. oracle脚本导出数据文件

    1.首先在服务器上创建目录,以目录/user/mt_data/为例,服务器上执行:mkdir mt_data 2.把目录对oracle用户授予执行的权限 chown -R oracle:oinstal ...

最新文章

  1. 洛谷1527(bzoj2738)矩阵乘法——二维树状数组+整体二分
  2. delphi 读取ini所有项_财务机器人真的会代替财务人员所有工作吗?
  3. Python爬取B站5000条视频,揭秘为何千万人看「哪吒」流泪
  4. 管状合金电阻和片状合金电阻的区别_合金采样电阻的特点及作用
  5. easyui tree复选框是否打钩状态_原创深度:如何利用OpenVINO工具套件监控机器操作员情绪状态(一)...
  6. 思科模拟器Cisco Packet Tracer的下载与安装
  7. 聚合架构-晓岩企业架构系列讲座整理(0-19)
  8. 【附源码】Java计算机毕业设计校园博客系统(程序+LW+部署)
  9. Java开发中常见的危险信号(下)
  10. 力扣707设计链表(单链表,JavaScript)
  11. ⑪(面试篇 2/3)、《史上最全iOS八股文面试题》2022年,金三银四我为你准备了,iOS《1000条》笔试题以及面试题(包含答案)。带面试你过关斩将,(赶紧过来背iOS八股文)
  12. 使用MMD模型通过Kivicube平台制作WebAR与小程序AR
  13. 服务器与普通电脑之间的区别是什么?
  14. 印度尼西亚通过加密货币期货交易规则
  15. 投资收购微盟、博易智软后,要做中国Salesforce+ Palantir的天马股份再发智能商业π型战略
  16. C语言:编程计算π的近似值(直到最后一项的绝对值小于10-5为止),要求保留小数点后10位。
  17. 深入解析:如何修复SSL / TLS握手失败错误(上)
  18. 如何委婉的发短信拒绝老师的offer
  19. 代码随想录训练营day36
  20. 屏幕“眩光”问题或得缓解,科学家研究出类似飞蛾眼睛结构的薄膜

热门文章

  1. duet连win10_该来的总算来了——Apogee Duet全新Windows 10操作指南
  2. DHCPv6 snooping
  3. python微信小程序抢购教程_微信小程序系统教程[高级阶段]——python版电商系统...
  4. API支付代理版自动发卡平台源码
  5. 前端JS获取内网IP地址
  6. iconv字符编码转换
  7. PHP丢失依赖文件libssl.so libcrypto.so
  8. Excel 如何将图片URL 显示为图片
  9. Java杨辉三角打印
  10. mysql 优化面试题