Chinaunix首页 | 论坛 | 博客
  • 博客访问: 251138
  • 博文数量: 59
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 698
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-19 21:17
文章分类

全部博文(59)

文章存档

2009年(14)

2008年(45)

我的朋友

分类: Oracle

2008-10-25 10:24:03

1、编写get_metadata.sql

set feedback off heading off verify off trimspool off
set feedback off;
set pagesize 0;
set termout off;
set heading on;
set linesize 5000
set long 20000
set TRIMS ON;
set AUTOTRACE OFF;
define fil= 'c:\exp.txt'
prompt *** Spooling to &fil
spool &fil
select HGQYDM||','||BH||','||NSRSBH||','||NSRMC||','||NSRMC_Y||','||ZZJG_DM||','||KYRQ||',' from cktscq0.tsrd;
spool off;
exit;#退出sqlplus窗口

2、在windows下编写get_metadata.bat脚本

sqlplus "/ as sysdba" @c:\tsrd.sql

因此在windows下只需要执行上述脚本就可以了。最后生成的就是纯粹的文本文件,不含有任何的乱七八糟的信息。上述脚本是在windows下运行的,而在linux下脚本与其相似。

3、获得上述表的txt导出后,我们还可以使用sqlldr对数据进行导入,达到数据迁移的目的。
1)目前我们需要导入的文本文件在c:\exp.txt中
2)在测试库中创建需要导出的表 sqlldr_tsrd
 CREATE TABLE sqlldr_TSRD
  (    "HGQYDM" CHAR(10),
       "BH" VARCHAR2(6),
       "NSRSBH" CHAR(20) NOT NULL ENABLE,
       "NSRMC" VARCHAR2(100),
       "NSRMC_Y" VARCHAR2(100),
       "ZZJG_DM" VARCHAR2(30),
       "KYRQ" DATE);
3)编写sqlldr.ctl的控制文件
load data
infile 'c:\exp.txt'
append into table sqlldr_tsrd
fields terminated by ',' TRAILING NULLCOLS (HGQYDM,BH,NSRSBH,NSRMC,NSRMC_Y,ZZJG_DM,KYRQ)
4)在命令行调用sqlldr
 $sqlldr userid=cktscq0/cktscq0 control=c:\sqlldr.ctl log=c:\sqlldr.log
5)数据加载成功
阅读(629) | 评论(0) | 转发(0) |
0

上一篇:今天我生日

下一篇:谈谈oracle备份

给主人留下些什么吧!~~