SQLserver链接服务器到Oracle |
SQL Server 2005 Express 拜访 Oracle 10 EXEC master.dbo.sp_addlinkedserver @server = N'TESTLINK', @srvproduct=N'Oracle', @provider=N'MSDAORA', @datasrc=N'TEST' GO 这一句在 SQLServer 下 缔造一个数据库链接 。 衔接名为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', @rmtpassword = N'test123' 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 消费者 。并设置 彻底操纵 。 而后再一次启动计算机 。 再一次启动 结束后,应该就 畸形了 。 |