1. 首先从informix中将数据按照oracle的表格式导出。例如informix的a表结构如下
create table a(
name char(30);
money demical(10,2),
tele char(20);
addr char(30);
)
orcacel的b表数据如下
create
table b(
name
char(45), ---- 注意一般informix的中文占2个字节,oracle占3个字节
money
number (10, 2),
addr varchar(45)
tele
char(20);
zipcode
char(6);
)
从informix 根据oracle中表结构导出数据 sql如下:
unload to a.txt select name, money, addr, tele, '' from a;
'' 是为了填b表中的zipcode这个字段。
informix 导出的a.txt是以‘|’分隔的。
2. 将a.txt放在oracle数据库可访问的目录下 例如:$HOME/load
3. 编写格式控制文件a.ctl
load data
infile "$HOME/load/a.txt"
append into table b
fields terminated by "|"
(
name
char(45), ---- 注意一般informix的中文占2个字节,oracle占3个字节
money
char(12),
addr char(45),
tele
char(20),
zipcode
char(6)
)
建议全部以字符的形式导入,减少两种数据库不同类型变量间不兼容的问题
4.
shell 脚本导入数据load.sh
sqlldr userid=zylife/zylife@zyxtrn
control=$HOME/load/a.ctl bad=$HOME/load/a.data
log=$HOME/load/a.log