一、 资料复制前的准备工作:
<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]
使用下面的这个方法会报“……为列提供的元数据不一致……”的错误信息。
通过连接向Oracle中的表插入数据
select DepartmentId,DeptName,DeptCode from BaseMetaData_Department
由于SQL的原因。只有第一种可以正常使用。SQL限制只能有三层。而oracle的table前面是带有点。
各位,下一篇我们会讨论如何: 在oracle中通过链接服务器(dblink)访问sql server