我所知道的两种方案:
1、透明网关。
2、建立SqlServer数据源。
透明网关在以前的使用过程当中经常出现不稳定的问题所以现在采用的是建立SqlServer数据源的这种方案。
第一步、建立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_LIST =
(ADDRESS = (PROTOCOL = tcp)(HOST = 计算机名称或ip)(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_SMS为SqlServer中数据源
create or replace synonym TBL_SQL_SMS
测试一下select * from TBL_SQL_SMS;
注意Oracle跟Sqlserver的语法不同之处。如查询单个字段时,需使用””将SqlServer字段的名称引起来,插入也是如此。