利用sql server自带bcp工具与Oracle sqlldr命令将Sql server数据导入至Oracle

1、进入sql server端进入dos命令窗口,输入命令

根据查询内容导出 .csv文件或.txt文件

Bcp"select[id],[ndirid],[strprojectno],[strproject],[strsubject],[strphase],[strdrawingno],[strdrawingname],[strpapername],[strversion],[dtcus_01],[strprjmgrname],[strdesignname],[strcheckname],[strproofname],[strapprovename],[strsubjectmgrname],[ndwgstore],[npltstore],[npdfstore] from [SGMARKET].[dbo].[tb_cad_file] where [brecycler]=0 and [bdelete]=0" queryout d:\sql\1.csv -c -t* -T -S (local)

注意:bcp要空格、中间加查询语句,最后queryout 导出文件的地址及格式

-t后跟一个字符代表以该字符作为字段分隔符

-S后跟本机的sql server的服务器名sql server2008之后多为(local)

-c表示存储的数据类型

-T表示可信连接可以不需要sql server用户名密码执行操作

2、在Oracle中创建需要导入的表的结构

3、编写脚本.ctl文件

load data

infile 'd:/11.csv'           --------->需要导入的数据路径

Truncate                 --------->导入数据前清空数据

into table tb_cad_file       --------->要导进的表

fields terminated by "*"     --------->指定与数据文件中相同的字段分隔符

optionally enclosed by '"'

trailing nullcols            --------->指定没有数据的地方可以为null

(

 id char,                  --------->对应表结构

 ndirid char,

 strprojectno char(500),

 strprojectsub char(300),

 strproject char(800),

 strsubject char(200),

 strphase char(200),

 strdrawingno char(200),

 strdrawingname char(500),

 strpapername char(200),

 strversion char(200),

 dtcus_01 char(300),

 strprjmgrname char(200),

 strdesignname char(200),

 strcheckname char(200),

 strproofname char(200),

 strapprovename char(200),

 strsubjectmgrname char(200),

 ndwgstore char,

 npltstore char,

 npdfstore char

)

4、通过Oracle安装目录bin下进入dos命令窗口

输入命令:

sqlldr system/[email protected]:1521/dndx control=D:\test.ctl log=D:\test.log

注意:

Sqlldr后空格system为Oracle用户名/manager为Oracle密码后跟@ip:端口号/服务器名 指定control脚本路径 输出日志路径

5、通过test.log查看错误原因修改

6、通过.bad文件查看错误数据数据少时可直接手动导入

你可能感兴趣的:(oracle,数据库,sqlserver)