ORACLE自动导出表到EXCEL

本文介绍了使用SQL*PLUS将数据库中的数据导出为CSV、XLS和HTML格式的方法。包括通过设置输出环境和使用脚本避免冗余信息等技巧。

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

方法一:

用sqlplus spool生成*.csv格式的文本文件即可
set trimspool on 
set linesize 120 
set pagesize 2000 
set newpage 1 
set heading off 
set term off 
spool 路径+文件名 
select col1||','||col2||','||col3||','||col4||'..' from tablename; 
spool off

 

方法二:

通过SQL*PLUS我们可以构建友好的输出,满足多样化用户需求。
本例通过简单示例,介绍通过sql*plus输出xls,html两种格式文件.
首先创建两个脚本:
1.main.sql
用以设置环境,调用具体功能脚本
2.功能脚本-get_tables.sql
为实现具体功能之脚本
通过这样两个脚本可以避免spool中的冗余信息,参考:
如何去除SQLPLUS中SPOOL的冗余信息

示例如下:
1.main.sql脚本:
[oracle@jumper utl_file]$ more main.sql
set linesize 200 
set term off verify off feedback off pagesize 999 
set markup html on entmap ON spool on preformat off
spool tables.xls
@get_tables.sql
spool off
exit

2.get_tables.sql脚本:
[oracle@jumper utl_file]$ more get_tables.sql 
select owner,table_name,tablespace_name,blocks,last_analyzed
from all_tables order by 1,2;

3.执行并获得输出:
[oracle@jumper utl_file]$ sqlplus "/ as sysdba" @main

SQL*Plus: Release 9.2.0.4.0 - Production on Mon Apr 25 10:30:11 2005

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning option
JServer Release 9.2.0.4.0 - Production

Disconnected from Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning option
JServer Release 9.2.0.4.0 - Production
[oracle@jumper utl_file]$ ls -l tables.xls 
-rw-r--r--    1 oracle   dba         69539 Apr 25 10:30 tables.xls
[oracle@jumper utl_file]$ 

 

方法三:

file1: export.bat
内容:
sqlplus user/pass@dbname @d:\export.sql

file2:export.sql
内容:
set term off verify off
set feedback off pagesize 999
spool d:\data.xls
set head off
select '<meta http-equiv=Content-Type content="text/html; charset=GB2312">' from dual;
set head on
set linesize 200 markup html on entmap ON spool on preformat off
@d:\get_data.sql
spool off
exit

file3: get_data.sql
内容:
select sysdate from dual;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值