批量导出表数据到CSV文件
需求:把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文件相关推荐
- Python——dat文件批量合并为同一个csv文件
Python--dat文件批量合并为同一个csv文件 目的:将文件夹ZW下的所有dat文件(含子文件夹)合并,并保存到results.csv中,便于后续使用excel进行处理与分析. 代码: #!/u ...
- Python爬虫之Js逆向案例(12)-知乎答案批量获取保存到CSV文件
声明:知乎答案批量获取分析仅用于研究和学习,如有侵权,可联系删除 大家好,本期分享的内容是一个关于批量获取知乎答案的案例,本案例的重点是教大家在写爬虫时如何更规范的去编写自己的爬虫.场景是这样的,最近 ...
- php导出数据到csv文件,php导出CSV文件代码 PHP导出数据到CSV 如何排版
如何使用PHP导出csv和excel文件你走后,再也没有一个声音能让我在人海中突然回首张望. 把Excel文件导入mysql: 打开excel文件,可用phpExcel开源的类 或者: 先把excel ...
- java将输出结果写入csv文件_如何在Java中将数据写入.csv文件?
名为OpenCSV的库提供API来从.CSV文件读取数据或将数据写入.CSV文件.此处说明了如何使用Java程序写入.csv文件的内容. Maven依赖 com.opencsv opencsv 4.4 ...
- mysql可视化导入csv文件_我们如何将数据从.CSV文件导入MySQL表?
实际上,CSV也是一个文本文件,其中的值由逗号分隔,换句话说,我们可以说该文本文件带有CSV(逗号分隔的值).在将数据从.CSV文件导入到MySQL表时,我们需要将FIELDS SEPARATED O ...
- C# 将List中的数据导入csv文件中
//http://www.cnblogs.com/mingmingruyuedlut/archive/2013/01/20/2849906.html C# 将List中的数据导入csv文件中 将数据保 ...
- 7.3 MASS批量修改数据(Excel文件上传数据)
7.3 MASS批量修改数据(Excel文件上传数据) 步骤1:输入事务码MASS进入 1处,输入需要修改的对象类型(参见对象类型清单) 2处,点击"执行"按钮 步骤2:选择需要修 ...
- java将数据写入csv文件,从csv文件中读取数据
全栈工程师开发手册 (作者:栾鹏) java教程全解 java将数据写入csv文件,从csv文件中读取数据 测试代码 public static void main(String[] arges){/ ...
- php mysql 输出csv_php使用指定编码导出mysql数据到csv文件的方法
本文实例讲述了php使用指定编码导出mysql数据到csv文件的方法.分享给大家供大家参考.具体实现方法如下: <?php /* * PHP code to export MySQL data ...
最新文章
- 快看漫画大数据平台的模型思维与用户增长实践
- nodejs之思维导图(浅理解)
- 更改chrome临时目录(可举一反三)
- 浮栅场效应管 符号_场效应管主要参数与特点,场效应管与其他管子的对比
- 有关PHP、HTML单引号、双引号转义以及转成HTML实体的那些事!
- saslauthd mysql_open***使用MySQL进行认证
- c# 再次尝试 连接失败_手机投屏电视连接不上怎么回事?
- selenium和python的关系,Selenium+python
- 【车间调度】基于matlab NSGA-2算法求解多目标车间调度问题【含Matlab源码 071期】
- word文档页眉清除和页码设置
- 焊接知识与技能(嵌入式硬件篇)
- 「云服务」华为云云耀云服务器介绍
- 【mac】MacBook使用快捷键
- jt808、obd采集源码
- Chinese Rings HDU-2842 矩阵快速幂
- 《大道至简》第一章 编程的精义 伪代码
- 蓝桥杯真题系列:C语言A组奇妙的数字
- 【疑难解决】EasyNVR通道显示在线却无法播放视频,该如何解决?
- 大学四年的各种学习资源整理
- Beehive UVALive - 7528 (找规律+数学思维)