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!!
导出数据为csv格式
来源:这里教程网
时间:2026-03-03 12:03:47
作者:
编辑推荐:
- 导出数据为csv格式03-03
- 怎样调整Word中文字与下划线之间的距离03-03
- 在Word 2010文档中如何设置多种图形对齐方式03-03
- ORACLE 11GR2 配置GATEWAY FOR SERVER 问题03-03
- Word里面撤销的快捷键是什么,附常见问题03-03
- Word2010一关闭程序窗口就崩溃的解决方法03-03
- 表空间和数据文件的管理03-03
- Word2010免费下载03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 表空间和数据文件的管理
表空间和数据文件的管理
26-03-03 - EBS报表参数间的关联性--value set
EBS报表参数间的关联性--value set
26-03-03 - ORA-00257:archiver error. Connect internal only,until freed.
- expdp备份ORA-ORA-31693/ORA-02354/ORA-00942
- 在Word 2010文档中如何修改自选图形形状
在Word 2010文档中如何修改自选图形形状
26-03-03 - Oracle EBS 用户配置文件
Oracle EBS 用户配置文件
26-03-03 - ORACLE 11.2.0.4 for HPUNIX 业务SQL处理数据量变化导致的CPU使用率超标触发告警
- win10电脑虚拟网络设置方法
win10电脑虚拟网络设置方法
26-03-03 - How to Rename Database/Change DB_NAME or ORACLE_SID/Instance Name-15390.1
- APP_CALCULATE.RUNNING_TOTAL用法
APP_CALCULATE.RUNNING_TOTAL用法
26-03-03
