需求:把oracle数据库中符合条件的N多表。导出成csv文本文件。并以表名.csv为文件名称存放。

实现:通过存储过程中UTL_FILE函数来实现。导出的csv文件放入提前创建好的directory中。

用法:使用下面命令数据预运行的SQL脚本

SELECT 'EXEC sql_to_csv(''select * from ' ||T.TABLE_NAME ||

''',''OUT_PUT_CSV''' || ',''ODS_MDS.' || T.TABLE_NAME ||
'.csv'');'
FROM user_TABLES T

脚本说明:sql_to_csv 存储过程名。out_put_csv数据库文件夹名称;ODS_MDS提前定义的schema名称;

存储过程代码例如以下:

CREATE OR REPLACE PROCEDURE CHENQY.SQL_TO_CSV
(P_QUERY IN VARCHAR2, -- PLSQL文P_DIR IN VARCHAR2, -- 导出的文件放置文件夹P_FILENAME IN VARCHAR2 -- CSV名)ISL_OUTPUT UTL_FILE.FILE_TYPE;L_THECURSOR INTEGER DEFAULT DBMS_SQL.OPEN_CURSOR;L_COLUMNVALUE VARCHAR2(4000);L_STATUS INTEGER;L_COLCNT NUMBER := 0;L_SEPARATOR VARCHAR2(1);L_DESCTBL DBMS_SQL.DESC_TAB;P_MAX_LINESIZE NUMBER := 32000;
BEGIN--OPEN FILEL_OUTPUT := UTL_FILE.FOPEN(P_DIR, P_FILENAME, 'W', P_MAX_LINESIZE);--DEFINE DATE FORMATEXECUTE IMMEDIATE 'ALTER SESSION SET NLS_DATE_FORMAT=''YYYY-MM-DD HH24:MI:SS''';--OPEN CURSORDBMS_SQL.PARSE(L_THECURSOR, P_QUERY, DBMS_SQL.NATIVE);DBMS_SQL.DESCRIBE_COLUMNS(L_THECURSOR, L_COLCNT, L_DESCTBL);--DUMP TABLE COLUMN NAMEFOR I IN 1 .. L_COLCNT LOOPUTL_FILE.PUT(L_OUTPUT,L_SEPARATOR || '"' || L_DESCTBL(I).COL_NAME || '"'); --输出表字段DBMS_SQL.DEFINE_COLUMN(L_THECURSOR, I, L_COLUMNVALUE, 4000);L_SEPARATOR := ',';END LOOP;UTL_FILE.NEW_LINE(L_OUTPUT); --输出表字段--EXECUTE THE QUERY STATEMENTL_STATUS := DBMS_SQL.EXECUTE(L_THECURSOR);--DUMP TABLE COLUMN VALUEWHILE (DBMS_SQL.FETCH_ROWS(L_THECURSOR) > 0) LOOPL_SEPARATOR := '';FOR I IN 1 .. L_COLCNT LOOPDBMS_SQL.COLUMN_VALUE(L_THECURSOR, I, L_COLUMNVALUE);UTL_FILE.PUT(L_OUTPUT,L_SEPARATOR || '"' ||TRIM(BOTH ' ' FROM REPLACE(L_COLUMNVALUE, '"', '""')) || '"');L_SEPARATOR := ',';END LOOP;UTL_FILE.NEW_LINE(L_OUTPUT);END LOOP;--CLOSE CURSORDBMS_SQL.CLOSE_CURSOR(L_THECURSOR);--CLOSE FILEUTL_FILE.FCLOSE(L_OUTPUT);
EXCEPTIONWHEN OTHERS THENRAISE;
END;/

转载于:https://www.cnblogs.com/clnchanpin/p/6746857.html

批量导出表数据到CSV文件相关推荐

  1. Python——dat文件批量合并为同一个csv文件

    Python--dat文件批量合并为同一个csv文件 目的:将文件夹ZW下的所有dat文件(含子文件夹)合并,并保存到results.csv中,便于后续使用excel进行处理与分析. 代码: #!/u ...

  2. Python爬虫之Js逆向案例(12)-知乎答案批量获取保存到CSV文件

    声明:知乎答案批量获取分析仅用于研究和学习,如有侵权,可联系删除 大家好,本期分享的内容是一个关于批量获取知乎答案的案例,本案例的重点是教大家在写爬虫时如何更规范的去编写自己的爬虫.场景是这样的,最近 ...

  3. php导出数据到csv文件,php导出CSV文件代码 PHP导出数据到CSV 如何排版

    如何使用PHP导出csv和excel文件你走后,再也没有一个声音能让我在人海中突然回首张望. 把Excel文件导入mysql: 打开excel文件,可用phpExcel开源的类 或者: 先把excel ...

  4. java将输出结果写入csv文件_如何在Java中将数据写入.csv文件?

    名为OpenCSV的库提供API来从.CSV文件读取数据或将数据写入.CSV文件.此处说明了如何使用Java程序写入.csv文件的内容. Maven依赖 com.opencsv opencsv 4.4 ...

  5. mysql可视化导入csv文件_我们如何将数据从.CSV文件导入MySQL表?

    实际上,CSV也是一个文本文件,其中的值由逗号分隔,换句话说,我们可以说该文本文件带有CSV(逗号分隔的值).在将数据从.CSV文件导入到MySQL表时,我们需要将FIELDS SEPARATED O ...

  6. C# 将List中的数据导入csv文件中

    //http://www.cnblogs.com/mingmingruyuedlut/archive/2013/01/20/2849906.html C# 将List中的数据导入csv文件中 将数据保 ...

  7. 7.3 MASS批量修改数据(Excel文件上传数据)

    7.3 MASS批量修改数据(Excel文件上传数据) 步骤1:输入事务码MASS进入 1处,输入需要修改的对象类型(参见对象类型清单) 2处,点击"执行"按钮 步骤2:选择需要修 ...

  8. java将数据写入csv文件,从csv文件中读取数据

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java将数据写入csv文件,从csv文件中读取数据 测试代码 public static void main(String[] arges){/ ...

  9. php mysql 输出csv_php使用指定编码导出mysql数据到csv文件的方法

    本文实例讲述了php使用指定编码导出mysql数据到csv文件的方法.分享给大家供大家参考.具体实现方法如下: <?php /* * PHP code to export MySQL data ...

最新文章

  1. 快看漫画大数据平台的模型思维与用户增长实践
  2. nodejs之思维导图(浅理解)
  3. 更改chrome临时目录(可举一反三)
  4. 浮栅场效应管 符号_场效应管主要参数与特点,场效应管与其他管子的对比
  5. 有关PHP、HTML单引号、双引号转义以及转成HTML实体的那些事!
  6. saslauthd mysql_open***使用MySQL进行认证
  7. c# 再次尝试 连接失败_手机投屏电视连接不上怎么回事?
  8. selenium和python的关系,Selenium+python
  9. 【车间调度】基于matlab NSGA-2算法求解多目标车间调度问题【含Matlab源码 071期】
  10. word文档页眉清除和页码设置
  11. 焊接知识与技能(嵌入式硬件篇)
  12. 「云服务」华为云云耀云服务器介绍
  13. 【mac】MacBook使用快捷键
  14. jt808、obd采集源码
  15. Chinese Rings HDU-2842 矩阵快速幂
  16. 《大道至简》第一章 编程的精义 伪代码
  17. 蓝桥杯真题系列:C语言A组奇妙的数字
  18. 【疑难解决】EasyNVR通道显示在线却无法播放视频,该如何解决?
  19. 大学四年的各种学习资源整理
  20. Beehive UVALive - 7528 (找规律+数学思维)

热门文章

  1. VMM系列之使用VMM服务器构建 Hyper-V 主机(3)
  2. 《算法导论》学习总结 — 13. 第13章 红黑树(2)
  3. HTML学习笔记_004_分段与换行
  4. iOS App上架流程(2016详细版)
  5. 小蚂蚁学习数据结构(4)——线性结构——线性表的链式表示和实现(下)
  6. Java知多少(87)选择框和单选按钮(转)
  7. Linux下双网卡绑定(bonding技术)
  8. hibernate 持久化
  9. windows Server 2003   IIS启用父路径
  10. 选本还是从缓存设计理念选择更好