怎麼在SQLPLUS中把數據庫中表的內容導出到EXCEL中,以及把EXCEL中的內容導入到數據庫中的某個表中...

sweig0721 2005-04-22 11:16:12
怎麼在SQLPLUS中把數據庫中表的內容導出到EXCEL中,以及把EXCEL中的內容導入到數據庫中的某個表中...
期待中。。。。。加油!
...全文
995 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
china_ren5160 2005-06-16
  • 打赏
  • 举报
回复
我觉得PB的数据管道最方便,
weastsea 2005-06-16
  • 打赏
  • 举报
回复
* sqlldr
用于将格式化的文本数据上载到表中去。
首先编写一个控制命令的脚本文件emp.ctl,内容如下:

load data
infile 'c:\data\*.dat'
append into table emp
fields terminated by '|',optionally enclosed by '"'
TRAILING NULLCOLS // trailing nullcols 表示遇到空字段依然写入到数据库表中
(
no float external,
name char(20),
age integer external,
duty char(1),
salary float external,
upd_ts date(14) 'YYYYMMDDHH24MISS'
)

括号里对数据文件里每个数据域进行解释,以此在上载时与目标表进行比对。
除了append外,还有insert、replace、truncate等方式,与append大同小异,不作更多的解释。
再将上载数据组织成数据文件,通常以dat结尾,emp.dat内容如下:

100000000001|Tom|000020|1|000000005000|20020101000000
100000000002|Jerry|000025|2|000000008000|20020101235959

分隔符要与ctl文件中fields terminated by指定的一致,这个例子中为"|"
ctl和dat文件就绪后可以执行上载,命令为:
sqlldr user/passwd@oracle_sid control=emp.ctl
*sqlplus
*.config内容如下:
set echo off;
set feedback off;
set heading off;
set pagesize 0;
set linesize 1000;
set termout off;
set trimout on;
set trimspool on;

spool ..\*.txt
select ASYSAREACODE||','||COLUMN_59||','||VAVILLAGE from TSUCCORLSBASIC;
spool off;

在整个数据的迁移过程中,用到3个文件夹:MinZhengData,MinZhengConfig,MinZhengCtl
依次存放的是每个表的*.CVS文件,SQLPLUS.config文件,*。CTL文件。
对SQLPLUS.config文件 使用SQLPLUS命令:
sqlplus user/passwd@oracle9i_sid @*.config
导出数据到文件*.txt。
DF_4B 2005-06-16
  • 打赏
  • 举报
回复
常用导出数据的方式有2种:
1、使用SQLPLUS自带的SPOOL命令;
2、使用ORACLE自带的EXM命令。

例:

C:\orant\BIN>exp80 -help

Export: Release 8.0.5.0.0 - Production on 星期四 6月 16 11:28:54 2005

(c) Copyright 1998 Oracle Corporation. All rights reserved.



通过输入 EXP 命令和用户名/口令,您可以
按照“导出”提示键入参数:

实例:EXP SCOTT/TIGER

或者,您也可以通过输入 EXP 命令以及各种自变量来控制“导出”
的运行方式。要指定参数,您可以使用关键字:

格式:EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
实例:EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
或 TABLES=(T1:P1,T1:P2),如果 T1 是分区表

USERID 必须是命令行中的第一个参数。

关键字 说明(默认) 关键字 说明(默认)
--------------------------------------------------------------------------
USERID 用户名/口令 FULL 导出整个文件 (N)
BUFFER 数据缓冲区的大小 OWNER 所有者用户名列表
FILE 输出文件 (EXPDAT.DMP) TABLES 表名称的列表
COMPRESS 导入一个范围 (Y) RECORDLENGTH IO 记录的长度
GRANTS 导出权限 (Y) INCTYPE 增量导出类型
INDEXES 导出索引 (Y) RECORD 跟踪增量导出 (Y)
ROWS 导出数据行 (Y) PARFILE 参数文件名
CONSTRAINTS 导出限制 (Y) CONSISTENT 交叉表一致性
LOG 屏幕输出的日志文件 STATISTICS 分析对象 (ESTIMATE)
DIRECT 直接路径 (N)
FEEDBACK 显示每 x (0) 行的进度
POINT_IN_TIME_RECOVER 表空间时间点恢复 (N)
RECOVERY_TABLESPACES 要恢复的表空间名称列表

在没有警告的情况下成功终止导出。

C:\orant\BIN>
DF_4B 2005-06-16
  • 打赏
  • 举报
回复
楼主的要求与EXCEL没有关系。。。只要解决从ORACLE中导入数据,以及向ORACLE中导入数据就行了!!!
云帆 2005-06-16
  • 打赏
  • 举报
回复
在sql plus 中不行,用plsql或pb都挺爽的。
在sql plus中可以将select 的结果保存到文件
set echo off
set feedback off
set heading off
set linesize 你想要的长度
set pagesize 一页的行数
spool c:\文件名
select *
from aaa where ur_condition;
spool off
luxuezhu 2005-06-16
  • 打赏
  • 举报
回复
使用SQL*PLUS,构建完美excel或html输出
作者:eygle
出处:http://blog.eygle.com
日期:April 25, 2005
? How to use Oracle BFILE | Blog首页 | 美丽的樱花 ?


--------------------------------------------------------------------------------
通过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
zhpsam109 2005-04-22
  • 打赏
  • 举报
回复
使用pl/sql dev或者borland的导入导出工具,等等,很容易实现!
baojianjun 2005-04-22
  • 打赏
  • 举报
回复
我使用的是delphi6+oracle817
可以作界面來導入導出
zakat 2005-04-22
  • 打赏
  • 举报
回复
导出到excel中,如果使用sqlplus是不行的,你可以使用一个工具,plsql developer,很好用的。
把EXCEL倒入数据库,你可以用pb来做,不过首先你要用把excel变成txt文件,具体倒入你可以在网上找,很多的

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧