把本地MSSQL中的数据导入到远程服务器中的ORACLE中,这其中不但是把新增的数据导入到ORACLE,还要把有更新的数据更新到ORACLE
查了些资料
方法:
(1)
(2)利用MSSQL的OPENDATASOURCE
1、在远程服务器中安装MSSQL(不能只安装客户端)
2、企业管理器->添加本地注册->安全性->链接服务器->新建链接服务器->常规
配置如下:
Provider name(提供程序名称) : Microsoft OLE DB Provider for Oracle
Product name(产品名称) : Oracle
Data source (数据源): bspl
Provider string(提供程序字符串) : bspl
安全性->用此安全上下文进行->输入userid和password
访问使用格式为: [连接服务器名]..[ORACLE用户].[表名] (必须为大写)
编写程序或自己编写一个配置文件Schema.ini
内容为:
[P203.TXT]
ColNameHeader=True
format=TABDelimited
MaxScanRows=0
CharacterSet=ANSI
编写程序或用MS的DTS把数据导入到文件P203.TXT(txt文件要和Schema.ini放在同一目录)中,列分割符用制表符,包含列名
例如:
shop sname
001 广场
可以通过下面的方式查询数据
select * From OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0','Data Source="D:/tran";User ID=Admin;Password=;Extended properties=Text')...[P203#TXT]
“D:/tran”:文件的存放路径
P203:文件名称
通过上面查询的数据就可以在MSSQL的查询分析器中对oracle数据库进行DML操作了
例如:
insert into a
select * From OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0','Data Source="D:/tran";User ID=Admin;Password=;Extended properties=Text')...[P203#TXT] b;
update a
set sname=b.sname
from a,(select * From OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0','Data Source="D:/tran";User ID=Admin;Password=;Extended properties=Text')...[P203#TXT] ) b
where a.shop=b.shop;
END