一、  资料复制前的准备工作:

<1>  oracle数据库单需要进行简单的设置,保证listener服务已经启动。本次他们设置的服务名为

DEV(这在后面的设置中不能错)

 

<2>在需要复制的SQL服务器上安装oracle 11.g client

<3>安装完客户端软件后,要对客户端软件下的配置和移植工具----》net configuration assianstant进行配置,按照提示:图形界面修改(最好用这种方法修改) 可以在客户端机器上使用oracle Net Configuration Assistant或oracle Net Manager图形配置工具对客户端进行配置,该配置工具实际上修改tnsnames.ora文件。

下面是使用  oracle Net Configuration Assistant工具对客户端进行配置的,设置完成之后net manage中也作了相应的修改。步骤如下:

1、打开cmd输入netca或用菜单选择 Net Configuration Assistant。

2、选择【本地net服务名配置】→下一步。

3、选择【添加】→下一步。

4、在【服务名】中输入你想要连接的服务器上的oracle服务的名字(远程服务器上数据库的名字)→下一步。为DEV

5、选择【tcp】→下一步。

6、在【主机名】中输入你想要连接的服务器ip (oracle 数据库服务器IP为:172.16.3.55),端口号不变( 我们这里使用了测试库1567)→下一步。

7、选择【进行测试】→下一步。(当然你也可以选择不测试)

截止到现在,在服务器上有关oracle连接的前期准备工作已完成。

一、  Sql server中新建指向oracle的链接服务器:

1.上面在客户端设置了访问oracle服务器的必要设置,客户端可以通过oracle的客户端访问orcale服务端的数据库了。这里使用sql server的链接服务器链接oracle服务器访问数据的情况。

设置如下:

  •  在sql server中新建一个链接服务器,比如链接服务器名为:test
  •  数据访问接口选择:Microsoft OLE DB Provider for Oracle (简体环境可以选择这个)我在我们的繁体环境中只能使用。Oracle Provider for OLE DB
  •  产品名称:Oracle
  •  数据源:就是上面步骤中建立的服务器别名,代表要访问的oracle服务器上的要访问的那个数据库。我们建立为test (注意大小写)
  •  在安全性中选“使用此安全上下文建立连接”,然后输入访问oracle的用户名和密码。

Ok,我们使用的为:xxxxxx(你需要更换为你实际使用的连接Oracle的用户名及密码)其他的上面没有提到的设置不需要设置。下面即可通过。

 

另:有一点特别注意的:在使用Oracle Provider for OLE DB

 是要先对Provider 进行一个设置。如下图,默认是没打勾。

 

二、    sql server中通过链接服务器访问oracle

由于orcale的服务名是直接指向到orcale服务器上的某一个数据库,所有通过链接服务器访问orcale的数据是这样的形式(指定数据库的位置不需要填):

服务器别名..所有者.数据库对象

TEST..username.tablename

select * from openquery(TEST, 'SELECT * FROM CUL.CUL_OE_ORDER_LINE')

select  * from  [TEST]..[DEFAULT].[CUL.CUL_OE_ORDER_HEADERS]

 使用下面的这个方法会报“……为列提供的元数据不一致……”的错误信息。

SELECT * FROM TEST_ORA..TEST.BASEMETADATA_DEPARTMENT


通过连接向Oracle中的表插入数据

INSERT OPENQUERY(TEST_ORA, 'select DepartmentId,DeptName,DeptCode from BaseMetaData_Department')
select DepartmentId,DeptName,DeptCode from BaseMetaData_Department

由于SQL的原因。只有第一种可以正常使用。SQL限制只能有三层。而oracle的table前面是带有点。

 

各位,下一篇我们会讨论如何:   oracle中通过链接服务器(dblink)访问sql server

posted on 2013-10-04 22:04  左丘文  阅读(1238)  评论(0编辑  收藏  举报