oracle使用存储过程将表数据以excel格式导出的操作方法

oracle使用存储过程将表数据以excel格式导出的操作方法

使用存储过程将表数据以excel格式导出的操作方法

更新时间:2024年07月25日 09:56:57   作者:追求完美9196

虽然目前pl/sql 等数据库客户端软件都支持将表数据以excel格式导出,但是如果数据量大,需要等客户端加载表数据等待很久,这篇文章给大家分享使用存储过程将表数据以excel格式导出的操作方法,需要的朋友可以参考下

虽然目前pl/sql 等数据库客户端软件都支持将表数据以excel格式导出,但是如果数据量大oracle plsql导出表数据oracle plsql导出表数据oracle plsql导出表数据,需要等客户端加载表数据等待很久。而且oracle使用存储过程将表数据以excel格式导出的操作方法oracle使用存储过程将表数据以excel格式导出的操作方法,可能会遇到定时以excel格式导出数据的要求。因此我自己写了一个使用存储过程将表数据以excel格式导出的存储过程。

create or replace procedure pr_export_to_excel(p_table_name      varchar2,
                                               p_where_predicate varchar2 default null) is
  /*
  propose:根据表名和where条件生成excel
  p_where_predicate:where条件语句
  */
  out_file          utl_file.file_type; --定义一个文件类型变量
  str1              varchar2(20000); --定义一个字符串变量,用于存储表1的字段名
  str1_chr          varchar2(30000);
  l_sql             varchar2(20000);
  l_where_predicate varchar2(30000) default 'where ' || p_where_predicate;
begin
  if p_where_predicate is null then
    l_where_predicate := null;
  end if;
  --查询表1的字段名,用制表符分隔,并赋值给str1
  select listagg(column_name, chr(9)) within group(order by column_id)
    into str1
    from user_tab_columns
   where table_name = upper(p_table_name);
  --查询表1的字段名,用制表符分隔,并赋值给str1_chr

oracle plsql导出表数据

select listagg(case when t.DATA_TYPE = 'DATE' OR t.DATA_TYPE LIKE 'TIMESTAMP%' THEN 'to_char(f_cur.' || column_name || ',''YYYYMMDD HH24:MI:SS'')' else 'f_cur.' || column_name END, '||chr(9)||') within group(order by column_id) into str1_chr from user_tab_columns t where table_name = upper(p_table_name); l_sql := ' declare out_file utl_file.file_type; --定义一个文件类型变量 BEGIN --打开一个文件,指定目录对象、文件名和写入模式 out_file := utl_file.fopen('' DIR_EXCEL '', ''' || p_table_name || '.xls '', '' W '', 32767); utl_file.put_line(out_file, ''' || str1 || '''); --写入字段名,换行 for f_cur in (select * from ' || p_table_name || ' t ' || l_where_predicate || ') loop utl_file.put_line(out_file, ' || str1_chr || '); end loop; utl_file.fclose(out_file); exception when others then utl_file.fclose(out_file); --关闭文件,防止异常关闭 dbms_output.put_line(SQLERRM); dbms_output.put_line(dbms_utility.format_error_backtrace); raise; --抛出异常信息 end; '; dbms_output.put_line(l_sql); --dbms_output.put_line(l_sql); execute immediate l_sql; exception when others then utl_file.fclose(out_file); --关闭文件,防止异常关闭 dbms_output.put_line(SQLERRM); dbms_output.put_line(dbms_utility.format_error_backtrace); raise; --抛出异常信息 end pr_export_to_excel;

3.调用存储过程

call ('TEST','NAME='''123''');

4.去目录'D:'取出TEST.xls文件

到此这篇关于使用存储过程将表数据以excel格式导出的文章就介绍到这了,更多相关 表数据excel格式导出内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

公告:
1. 本站所有资源来源于用户上传和网络,如有侵权请联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长处理!
6. 本站不售卖代码,资源标价只是站长收集整理的辛苦费!如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
7. 站长QQ号码 2205675299

资源库 - 资源分享下载网 » oracle使用存储过程将表数据以excel格式导出的操作方法

常见问题FAQ

关于资源售价和售后服务的说明?
本站所有资源的标价均为本站收集资源的辛苦费,不代表资源本身的价值。软件是高智慧高价值的商品,不可能是白菜价。本站资源标价只是赞助费用,收取的赞助费仅用来维持本站的日常运营!毕竟收集整理资料需要投入云计算资源和站长大量的精力。
代码有没有售后服务和技术支持?
由于代码的运行具有不可预见性,本站不保证代码完整可运行,不提供技术支持和售后服务。 本站原创代码都是站长自己开发的,可以有偿提供技术支持服务。 网站里标明【亲测】的代码都是站长亲测过的,其他的代码由于精力有限,没有一一测试,不能保证代码就一定能够使用,更没有技术支持服务,下载前请自行斟酌。
有没有搭建服务?
由于搭建服务比较费时费力,所以本站除了原创代码外均不提供搭建服务。本站分享代码纯属兴趣爱好,不以盈利为目的,请勿咨询有没有搭建服务,谢谢理解。
链接地址失效了怎么办?
请带上资源链接地址联系客服,工作时间内我们看到后将第一时间回复。
关于解压密码
本站资源一般都没有加密,如果发现需要解压密码的,那么就输入 hao.35dc.com 试试。

发表评论

资源库,由老程序员细心甄别、精心筛选,只为提供优质的源码资源

关于我们 联系我们