第一步:创建导出CSV语句

--创建导出语句
CREATE OR REPLACE PROCEDURE 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 CURSOR
  DBMS_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 CURSOR
  DBMS_SQL.CLOSE_CURSOR(L_THECURSOR);--CLOSE FILE
  UTL_FILE.FCLOSE(L_OUTPUT);
EXCEPTIONWHEN OTHERS THENRAISE;
END;

第二步:创建导出路径

--创建导出目录路径(Windows目录)
create or replace directory OUT_PATH as 'D:\';--根据需要可自行定义
--创建导出目录路径(Linux目录)
create or replace directory OUT_PATH as'/home/oracle';--根据需要可自行定义

第三步:根据需要导出具体表

1、可以通过(USER_TAB_COMMENTS)查询需要的表或者直接写表名称

--根据需要导出的实际需要的表
SELECT 'EXEC sql_to_csv(''select * from ' || T.TABLE_NAME ||''',''OUT_PATH''' || ',''' || T.TABLE_NAME || '_' || t.comments ||'.csv'');'FROM user_tab_comments Twhere t.TABLE_NAME = '表名称';--表名称

第四步:执行导出语句

1、如果需要导出的表有查询条件,建议将查询出的信息创建临时表(),导出临时表数据即可,执行语句加查询条件容易报错。

2、create table 临时表名称 as select * from  表名称 where 查询条件;

3、EXEC sql_to_csv() 需要通过命令窗口执行。

--执行导出语句 如果有查询条件,建议先将数据存在临时表,再导出。
EXEC sql_to_csv('select * from 表名','OUT_PATH','文件名称.csv');

转载于:https://www.cnblogs.com/ljs05/p/9357588.html

Oracle 导出CSV、导出大数据相关推荐

  1. php导出1万条数据excel_实用!用PHP导出百万级大数据到Excel

    实用!用PHP导出百万级大数据到Excel 作者:PHPYuan 时间:2018-07-31 03:41:41 关注我们的人 月薪都过万了 一.数据量分析 假设我们需要单日导入的数量为20W+ Exc ...

  2. easyexcel导出excel,大数据量100万以内分页查询zip格式导出

    easyexcel导出excel,大数据量100万以内分页查询zip格式导出 准备工作 整体思路 controller层 service层 mapper层 VO 表结构 测试 备注 easyExcel ...

  3. vue项目中:PC端导出csv或excel数据表方法及其移动端导出表格方法

    需求是在前端导出人员明细表,后端只给提供json格式的数据,函数方法如下: 一:第一种方法:(不可移动端导出) // 导出明细csv格式(纯前端导出)getExport() {// this.getD ...

  4. Excel文件导出总结,包含大数据量的分批导出方式

    文章目录 需求背景 参考内容 导出方式 代码实现 Excel4J 普通导出 POI原生方式 普通导出 大数据量分批导出 依赖版本 实现思路 POI工具类 数据写入 调用测试 测试结果 一个小意外 Ea ...

  5. hibernate oracle查询最大值_Java大数据:Mybatis和Hibernate对比分析

    在Java企业级平台开发任务当中,持久层框架的选择,Mybatis和Hibernate都占据一定的市场.从大趋势来说,传统企业偏爱Hibernate,而互联网更偏爱Mybatis.今天的大数据基础分享 ...

  6. 【Oracle EBS】解决大数据量Excel报表打开缓慢问题

    1.问题描述: Oracle EBS 使用XML/EXCEL模板进行报表开发,遇到大数据量时,生成的EXCEL文件通常有几百M,打开十分缓慢. 2.解决方案: 通过ORACLE标准excel文件生成工 ...

  7. mysql表导出csv空值_从mysql中导出csv格式的数据

    ===================从数据库中取数据导出到execl文档中===================== 连接数据库:mysql -h x.x.x.x -u ceshi -plianxi ...

  8. mysql数据导入导出 CSV格式_mysql数据一键导出到csv文件

    在数据库中获取数据的结果集,通过fputcsv() 函数将行格式化为 CSV 并写入一个打开的文件. fputcsv('打开的文件','数组数据'),该函数返回写入字符串的长度.若出错,则返回 fal ...

  9. solr控制台导出csv或者json数据

    一:保证solr正常启动并能访问 二:打开solr Admin 控制台,正常访问 三:地址栏输入如下地址 http://localhost:18091/solr/collectionName/sele ...

  10. python连接oracle批量写入_oracle大数据量python导入实践-1w/s

    在项目中需要将一个80w+的csv数据(200+m)导入到oracle库,一开始使用的是Navicat for Oracle的导入工具.跑了五六分钟之后绝望了,因为才跑了2%,按这样的速度跑半天都跑不 ...

最新文章

  1. 一键控制全屋设备,AI交互时代来临
  2. Sql Server数据库数据导入到SQLite数据库中
  3. Java 随心笔记10
  4. 旅行商问题c语言,【算法作业】用回溯法求解旅行商问题
  5. Gridview应用技巧——如何为行添加事件
  6. 7-2 图形卡片分组游戏 (60 分)
  7. mysql+主从同步+用户,MySQL主从同步
  8. 【笔记】LR录制方式和常用函数
  9. 【深度学习】深度学习分类与模型评估
  10. K3wise数据字典及常用表及视图
  11. centos部署mosquitto
  12. 支付宝网关支付模式详细解答
  13. 如何在百度和各大网站搜索到自己的文章
  14. 联想拯救者Y7000P触摸板无法使用
  15. [数据结构]基于二叉树的家谱系统
  16. 机器学习数学基础知识
  17. 在通用计算机系统中系统软件,计算机系统中系统软件的核心是什么
  18. Windows窗体应用程序~随机数字抽奖系统
  19. Line高关注度的背后暗藏什么玄机?
  20. 从服务器收到意料之外的响应,WordPress出现“从服务器收到预料之外的响应。此文件可能已被成功上传。请检查媒体库或刷新本页。”错误的解决方法...

热门文章

  1. SpringBoot配置属性之Server
  2. Exchange 2013学习(二),关于约会、会议和事件
  3. Aspose.Cells小实例
  4. Debian 系统初体验
  5. mysql出现多线程操作同一个表的情况,应该怎么办?
  6. 配置Windows server 2008 R2脱机加入域功能
  7. 使用Nginx实现服务器反向代理和负载均衡
  8. [转]PCB 设计中敷铜的注意事项
  9. Linux平台Qt creator报错:Circular all - first dependency dropped
  10. android java 回调方法接口