1、创建存储过程

CREATE OR REPLACE PROCEDURE SQL_TO_CSV

(

P_QUERY IN VARCHAR2, -- PLSQL文

P_DIR IN VARCHAR2, -- 导出的文件放置目录

P_FILENAME IN VARCHAR2 -- CSV名

)

IS

L_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 FILE

L_OUTPUT := UTL_FILE.FOPEN(P_DIR, P_FILENAME, 'W', P_MAX_LINESIZE);

--DEFINE DATE FORMAT

EXECUTE 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 NAME

FOR I IN 1 .. L_COLCNT LOOP

UTL_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 STATEMENT

L_STATUS := DBMS_SQL.EXECUTE(L_THECURSOR);

--DUMP TABLE COLUMN VALUE

WHILE (DBMS_SQL.FETCH_ROWS(L_THECURSOR) > 0) LOOP

L_SEPARATOR := '';

FOR I IN 1 .. L_COLCNT LOOP

DBMS_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);

EXCEPTION

WHEN OTHERS THEN

RAISE;

END;

/

2、创建 directory目录

create or replace directory OUT_PATH as '/expdp_dir';

3、拼接出导出的语句

SELECT 'EXEC sql_to_csv(''select * from ' ||T.TABLE_NAME ||''',''OUT_PATH''' || ',''ODS_MDS.' || T.TABLE_NAME ||'.csv'');' FROM user_TABLES T where t.TABLE_NAME='表名'

如果复杂的sql 语句可以创建出一张临时表,在把临时表导出来

例如: create table a as select * from bb ,cc where bb.id=cc.id;

直接导出临时表a即可;

4、执行导出csv的语句

EXEC sql_to_csv('select * from A','OUT_PATH','ODS_MDS.A.csv');

成功完成  end!!

sql怎么导出带标题的csv格式_导出数据为csv格式相关推荐

  1. 成功解决numpy.ndarray格式类型转数据为list格式数据带有中括号(一行代码搞定!)

    成功解决numpy.ndarray格式类型转数据为list格式数据带有中括号(一行代码搞定!) 目录 解决问题 解决思路 解决方法 解决问题 numpy.ndarray格式类型转数据为list格式数据 ...

  2. mysql数据导入导出 CSV格式_导出mysql的数据为csv格式的文件

    Mysql自带数据导出的命令 into outfile(本地导出) SELECT * FROM server_warning_repaired into outfile '/tmp/test.csv' ...

  3. java导入csv分隔符_基于Java的CSV格式文件处理(excel逗号分隔符文件) | 学步园...

    导出 用流写出即可.导出csv文件. /** * 获取csv 文件中的内容 * @param path csv的文件位置 * @return 内容集合 * @throws Exception */ p ...

  4. python关闭csv文件_使用Python编辑csv文件时跳过标题

    使用Python编辑csv文件时跳过标题 我使用下面引用的代码使用Python编辑csv.代码中调用的函数形式代码的上半部分. 问题:我希望下面引用的代码从第2行开始编辑csv,我希望它排除包含标题的 ...

  5. 怎么用python打开csv文件_使用Python从CSV文件读取数据

    CSV文件,也就是Comma-separated Value文件,用sublime打开是这样(数据下载见文末): 如果用excel打开是这样(千万别点保存,保存就有问题): 来看看怎么打开,如果安装了 ...

  6. JS 上传CSV转JSON | JSON数据转CSV下载 | 数组转CSV

    ⏹转换方法来源: https://www.30secondsofcode.org/js/s/csv-to-json https://www.30secondsofcode.org/js/s/array ...

  7. 文献引用的标准格式_外语论文文献引用格式—APA Style

    APA Style 写外语论文时,非常注意引用格式的使用.APA作为常见的论文引用格式之一,常被用于心理学.教育学和社会学科领域.可是你知道APA格式要如何使用?APA格式有哪些要求?下面小编为大家整 ...

  8. 不支持给定路径的格式_申论写作标准格式汇总,考前一定要看!

    1 >>>标点符号<<< 一.标点符号需要独立占格 这是标点符号最基本的格式,很多同学习惯于将标点符号点在字的右下角,平时不是很显眼.但是,公务员考试是有格子的,而 ...

  9. 用python的pandas打开csv文件_python读写数据读写csv文件(pandas用法)

    python中数据处理是比较方便的,经常用的就是读写文件,提取数据等,本博客主要介绍其中的一些用法.Pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用 ...

  10. http报文格式_理解数据通信协议的报文格式有何用?

    我们知道应用层的PDU是报文,最后变成物理层的比特流来传播,那么一个协议的报文格式同这个报文本身是什么关系?理解一个协议的报文格式有什么作用?简而言之,数据的发送方每层(从高层向底层下沉过程)做原始数 ...

最新文章

  1. CodeGen准备存储库
  2. .NET中做多语言版本的心得 1
  3. HBase性能优化方法总结(2):表的设计
  4. CSS3 flexbox 布局 ---- flex项目属性介绍
  5. easyDarwin--开源流媒体实现
  6. java类与对象_Java类与对象
  7. MySQL8.0允许外部访问
  8. 智能个性化推荐_个性化推荐算法_新闻推荐系统_人工智能推荐平台|Giiso智搜...
  9. Python 字符串、时间、日期、时间戳的相互转换(时间戳转换)
  10. Linux下更新libnss3的代码,yum安装firefox错误libnssutil3.s
  11. vivo S10 PRO怎么解锁vivoS10解锁平台刷机教程屏幕锁激活手机锁不记得了可以用这个方法教程重装系统固件软件程序使用方法流程
  12. 硬件工程师其实拼的是细节
  13. podman 开机自启
  14. chrome的视频播放加速功能也太好用了。
  15. cad剖切线的快捷键_Auto CAD2016剖面线快捷键是什么呢??
  16. 正大国际:你所应该知道的外盘国际期货知识
  17. 快手极速版(目前稳定奔跑中~)别问能不能跑了~
  18. python 关键词抽取工具
  19. 【Java高级】多线程基础
  20. Junit Test类报错Class not found XXX

热门文章

  1. 720phi10p 和 720p有什么区别_蓝光影碟机和普通影碟机有什么区别
  2. TensorFlow和PyTorch迎来了“后浪”
  3. 地图——基于python的gis开发与应用
  4. idea停止调试_IntelliJ IDEA:运行和调试脚本
  5. uncompyle--pyc的逆向工程工具
  6. 文件夹图标后缀名变成.ink的解决办法
  7. linux shell 脚本编程基本语法
  8. 如何通过ip追踪对方的虚拟地址
  9. 精灵宝可梦剑盾正在维护服务器,精灵宝可梦剑盾精灵分布_宝可梦剑盾全精灵位置_精灵在哪_游侠网...
  10. nntool神经网络工具箱的图形用户界面