oracle 导出数据到csv或excel文件

本文介绍四种从Oracle数据库导出数据至CSV或Excel的方法:利用存储过程、plsqldeveloper、Excel连接数据库及SQL*PLUSspool。每种方法适用场景不同,如存储过程适合大量数据导出,而Excel连接则受限于行数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

oracle 导出数据到csv或excel文件

目录

方法1:利用存储过程导出.csv文件

方法2:plsql developer->export query result

方法3:excel连接数据库导出

方法4:SQL*PLUS spool打印


工作中需要将Oracle中表数据导出到文本(csv、txt)或Excel(xls)文件时,有如下方法:

方法

1分钟导出的数据量

适用于

utl_file读写文件包

300万

大量导出时

plsql developer->export query result

10万

小量导出时

excel连接数据库

1万

 excel 最大行数1048576 

spool 循环打印

5000

可导出为文本或Excel格式

当有权限创建PL/SQL存储过程时,建议使用第一种方法,创建包含utl_file包的存储过程。

 

方法1:利用存储过程导出.csv文件

步骤1:创建SQL_TO_CSV存储过程

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='表名';

步骤4:执行导出csv的语句

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

.csv逗号分隔值格式文件,可用excel工具打开。

 

方法2:plsql developer->export query result

步骤1:查询要导出的数据,只查出部分数据即可,无需全部查询出来;

步骤2:再选择export query result ..导出csv文件,全部数据会被导出;

 

方法3:excel连接数据库导出

步骤

打开excel -> 数据 -> 导入数据

-> 第一步选择数据源 -> ODBC DSN -> 根据情况输入连接信息

->选表字段等

 

方法4:SQL*PLUS spool打印

步骤1:进入sqlplus

步骤2:预设显示格式

col 字段 format a10  --字段设置
set term off verify off feedback off pagesize 5000 linesize 200 --查询结果设置
set markup html on entmap off spool on preformat off --HTML相关设置
  • SET MARKUP HTML {ON|OFF}:指定是否以html格式输出;
  • SET ENTMAP {ON|OFF}:指定是否用HTML字符实体如&lt;, &gt;, &quot; and &amp;等,替换特殊字符<, >, " and &
  • SET SPOOL {ON|OFF}:指定是否生成HTML标签<HTML> 和<BODY>, </BODY> 和</HTML>
  • SET PERFORMAT {ON|OFF}:指定生成HTML时输出<PRE>标签,还是HTML表格。HTML表格即是.xls保存格式。

步骤3:打开spool

spool &output_dir/&output_file.xls

步骤4:执行SQL

SQL > select * from t1;

 

 步骤5:关闭spool

SQL > spool off

 

 

Quicktime 官方中文版的介绍: Quicktime提供最新电影预告片、PBS 特别节目或音乐视频 使用前请您先阅读以下条款: 1) 本站仅对原软件包“依样”打包,但不保证所提供软件或程序的完整性和安全性,压缩包中页面文件“Readme.html”为本站增加的说明文件。 2) 请在使用前查毒 ,这也是您使用其它网络资源所必须注意的事项 。 3) 安装过程中请务必仔细,以免误安装你可能不需要的第三方插件或恶意软件。 4) 由本站提供的程序对您的网站或计算机造成严重后果的本站概不负责。 5) 未经本站明确许可,任何网站不得非法盗链及抄袭本站资源! 6) 欢迎再次到PCHome下载中心(download.pchome.net)下载您所需要的软件。   最新、最时尚得下载感觉! 最快的更新速度 – 国内外众多知名软件厂商/作者均与我们有首发合作。 最好的下载体验 – 拥有国内主要ISP骨干网下载服务器。 最佳的发布平台 – 众多知名软件在PCHome崛起。 下载中心是PChome最早成立的频道,电脑之家最早提供给大家的除了irc就是下载服务。我们提供的下载软件服务早于华军软件园和天空软件站,是国内最早的软件下载站。PChome下载中心扶持推广了无数优秀软件:网络蚂蚁、Foxmail、超级兔子、FlashGet、QQ珊瑚虫、比特精灵.....数不胜数。目前在国内拥有诸多镜像站点及独立下载服务器,经历多年来的稳定发展,现已成为国内影响力最大的软件下载中心。
### Adobe Premiere Pro CC 2018 下载及功能介绍 Adobe Premiere Pro CC 2018 是一款专业的视频编辑软件,广泛应用于影视制作行业。以下是关于此版本的相关信息: #### 软件下载 Adobe Premiere Pro CC 2018 可通过 Adobe 官方网站订阅并下载。用户需注册 Adobe ID 并登录 Creative Cloud 应用程序来获取安装包。如果遇到安装路径问题,可以通过创建桌面快捷方式并将 `Adobe` 文件夹移动到自定义路径解决[^3]。 需要注意的是,某些情况下可能会出现崩溃文件(Crash File)。例如,当尝试运行时可能因 `ZXPSignLib-minimal.dll` 导致错误提示“试图访问无效的地址”,这是由于动态链接库加载失败引起的[^1][^2]。建议重新安装或更新驱动程序以修复此类问题。 #### 功能特点 Adobe Premiere Pro CC 2018 提供了一系列强大的视频编辑工具,包括但不限于以下几点: - **多轨时间线**:支持复杂的多轨道剪辑操作。 - **精剪替换**:允许快速更换特定片段而不影响其他部分[^4]。 ```python # 示例代码展示如何模拟简单的片段替换逻辑 def replace_clip(original_clips, new_clip, start_index, end_index): """ 替换指定索引范围内的原始片段为新片段 参数: original_clips (list): 原始片段列表 new_clip (str): 新片段名称 start_index (int): 开始索引 end_index (int): 结束索引 返回: list: 更新后的片段列表 """ updated_clips = original_clips[:start_index] + [new_clip] + original_clips[end_index+1:] return updated_clips clips = ["clip1", "clip2", "clip3", "clip4"] result = replace_clip(clips, "replacement_clip", 1, 2) print(result) # 输出 ['clip1', 'replacement_clip', 'clip4'] ``` - **色彩校正与分级**:内置 Lumetri Color 面板用于调整颜色参数。 - **音频混合**:提供多种音效处理选项以便于同步和优化声音质量。 #### 注意事项 对于初学者来说,熟悉界面布局以及基本命令非常重要。此外,定期保存工作进度以防数据丢失也是必不可少的习惯之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值