Oracle连接SqlServer

我所知道的两种方案:

1、透明网关。

2、建立SqlServer数据源。

 

透明网关在以前的使用过程当中经常出现不稳定的问题所以现在采用的是建立SqlServer数据源的这种方案。

在Windows7的64位系统中,数据源居然只有一个,我很郁闷!

后来百度过后知道运行它就OK了:C:/Windows/SysWOW64下odbcad32.exe

第一步、建立Sqlserver的数据源。

1、在管理工具中找到数据源(ODBC)

 

2、选择系统DSN面板然后点击添加

 

3、选择Sqlserver 点击完成

 

4、输入数据源名称跟服务器名

 

5、选择登录方式,填写密码后下一步

 

6、一定要记得修改你的默认数据库,去选择你要连接的库

 

7、都让他默认,直接点击完成。

 

8、测试数据源,一定要测试通过才算完。

 

 

至此数据源准备完毕

 

第二步、进行Oracle的配置

 

1、打开Oracle的安装路径下的这个文件夹D:\oracle\product\10.2.0\db_1\hs\admin(我的是D)

2、新建一个文件,文件的名称为:”init”+”empsms”数据源名称+后缀”.ora”——initempsms.ora

3、内容为:

# This is a sample agent init file that contains the HS parameters that are

# needed for an ODBC Agent. 

 

#

# HS init parameters

#

HS_FDS_CONNECT_INFO = empsms

HS_FDS_TRACE_LEVEL = 0

 

 

#

# Environment variables required for the non-Oracle system

#

#set <envvar>=<value>

4、打开D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN文件。

5、编辑listener.ora文件,在原有的SID_LIST_LISTENER中加入红色部分的SID_DESC。 新加入的SID_NAME一定要跟你Sqlserver数据源的名称对应。

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)

      (PROGRAM = extproc)

    )

    (SID_DESC =

      (SID_NAME = empsms)

      (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)

      (PROGRAM = hsodbc)

    )

  )

6、编辑tnsnames.ora,新建如下配置:

empsms =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = WIN-FAIVKQQKCMU)(PORT = 1521))
    (CONNECT_DATA =
      (SID = empsms)
    )
    (HS = OK)
  )

SID 一定要跟你数据源的名称对应。

7、新建DBlink

  create database link SMS

  connect to SA IDENTIFIED BY "sa用户的密码"

  using 'empsms';

  测试:select * from SqlServer库中的表的名称@SMS ;

8、新建同义词TBL_SMS@SMS:其中TEL_SMSSqlServer中数据源

  create or replace synonym TBL_SQL_SMS

  for TBL_SMS@SMS...dblink的名称;

  测试一下select * from  TBL_SQL_SMS;

 

注意OracleSqlserver的语法不同之处。如查询单个字段时,需使用””将SqlServer字段的名称引起来,插入也是如此。


已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 程序猿惹谁了 设计师:上身试试 返回首页