SQL Server 2005 Express 访问 Oracle 10
EXEC master.dbo.sp_addlinkedserver
@server = N'TESTLINK',
@srvproduct=N'Oracle',
@provider=N'MSDAORA',
@datasrc=N'TEST'
GO
连接名为TESTLINK
Oracle 数据源是 TEST
要求在SQL Server 的机器上面,安装有Oracle 的客户端。
那个Oracle 数据源,配置文件在
E:\oracle\product\10.2.0\client_1\NETWORK\ADMIN
目录下。
内容为:
# tnsnames.ora Network Configuration File:E:\oracle\product\10.2.0\client_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(host = 192.168.1.210)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
)
注: 本机只安装了 SQL SERVER EXPRESS 与 Oracle 10 的客户端。
Oralce 10 服务器安装在 另外一台机器上。
EXEC
master.dbo.sp_addlinkedsrvlogin
@rmtsrvname = N'TEST',
@locallogin = NULL ,
@useself = N'False',
@rmtuser = N'test',
GO
这一句是设置默认用什么用户名/密码来访问Oracle 数据库。
上面的例子是用户名为test 密码为 test123
数据库链接创建完毕后,可以尝试查询:
这里的TESTLINK..TEST.TEST_MAIN。
第一个TESTLINK是数据库链接名
第二个TEST 是Oracle 那里的Test 用户的方案名
TEST_MAIN 是Test 用户下的一个表。
1> select * from TESTLINK..TEST.TEST_MAIN;
2> go
ID VALUE
--------------------------------------------------
1 ONE
2 TWO
3 TWO
(3 行受影响)
注:假如创建链接完毕后,执行查询的时候,提示MSDAORA 找不到Oracle 客户端的话。如果本机安装的是Oracle 9 / 10 。那么有可能是权限的问题,需要额外在操作系统那里设置一下。
以本机为例子:
需要选择E:\oracle\product\10.2.0\client_1这个目录。
鼠标右键,弹出菜单中,选择“属性”。
然后在“安全”选项中,增加一个EveryOne 用户。并设置完全控制。
然后重新启动计算机。
重新启动完毕后,应该就正常了。