用MSSQL自带的DTS即可,先要在MSSQL服务器上装一个Oracle的客户端就可以了,
导的过程中可能会有一些错误发生,这主要与MSSQL设计的表结构有关,不过进行一
定的手工处理,一般都可以顺利导进去,我导过一个三百多个表,8G的数据到
Oracle10G中去。
导的过程中可能会有一些错误发生,这主要与MSSQL设计的表结构有关,不过进行一
定的手工处理,一般都可以顺利导进去,我导过一个三百多个表,8G的数据到
Oracle10G中去。
不过存储过程,触发器什么的,可能要重写
2、在ORACLE中对就建表;
3、在DOS下使用数据库自带sqlldr命令重新导入数据。
注意,不同版本的sqlldr命令名称并不一样,例如:UNIX下叫sqlldr、WIN下叫SQLLDR80.EXE。举一个导入的例子,以供参考:
▲从文件中加载大量数据
一、
①命令文件:data_load.bat
SQLLDR80.EXE ^ /*^ 批处理文件行延续符,所有参数必须在同一行中*/
userid=user ^/*用户名*/
control='E:\temp\oracle\tb_src.ctl' ^ /*存放数据的文件名称*/
log='e:\temp\oracle\tb_src.log' ^
bad='e:\temp\oracle\tb_src.bad' ^
rows=1000 /*每加载1000行执行一次commit *//**************************************
UNIX下,注意在同一行上
sqlldr control='$HOME/sql/tb_phone_no/tb_phone_no.ctl' log='$HOME/sql/tb_phone_no/tb_phone_no.log' bad='$HOME/sql/tb_phone_no/tb_phone_no.bad' rows=1000 userid=user
**************************************/②数据文件:tb_src.ctl
load data
infile *
appendinto table tb_src /*向tb_src表中加载数据*/
fields terminated by " " optionally enclosed by '"' /*指出列之间的分隔符是TAB*/
(tb_id,
phone_no) /*列名,如果有日期,必须指明格式,例:列名 date(11) “dd-mon-yyyy”*/BEGINDATA
1 13132520000
2 13132520001
3 13132520002
4 13132520003
5 13132520004
6 13132520005
7 13132520006
8 13132520007
9 13132520008
10 13132520009③更新数据字典
SQL> analyze table tb_src compute statistics;