利用MSSQL的OPENDATASOURCE把文本文件中的数据插入、更新到ORACLE

来源:互联网 发布:手机淘宝购买流程 编辑:程序博客网 时间:2024/05/22 13:11

把本地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

原创粉丝点击