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 消费者 。并设置 彻底操纵 。

   而后再一次启动计算机 。

  再一次启动 结束后,应该就 畸形了 。

SQLserver链接服务器到Oracle