1. 安装Oracle透明网关,对于WinXp下的Oralce的透明网关安装过程如下:
由于安装Oracle服务端时,该透明网关软件不会自动选上,需要人为选择。对于已经安装了服务的数据库也可以按照下面步骤来安装。
注意:选择高级安装,然后选择下一步按钮。
选择下一步按钮。
选择定制radio按钮
选中红色部门,然后点击下一步
2. 安装完之后,检测在$ORACLE_HOME(例如:D:oracleproduct10.1.0db_1)下是否存在tg4msql目录,如存在则表示安装了SQL server透明网关;
3. 配置监听文件:
添加:
(SID_DESC =
(SID_NAME = MSSQL)
(ORACLE_HOME = D:oracleproduct10.1.0Db_1)
(PROGRAM = tg4msql)
)
说明:MSSQL:自己配置的SID,可以任何名称
D:oracleproduct10.1.0Db_1:当前数据库安装路径
例如,原先的listener.ora的文件内容如下:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:oracleproduct10.1.0Db_1)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = wuwc.septwolves.com)(PORT = 1521))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
)
)
修改后的内容如下:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:oracleproduct10.1.0Db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = MSSQL)
(ORACLE_HOME = D:oracleproduct10.1.0Db_1)
(PROGRAM = tg4msql)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = wuwc.septwolves.com)(PORT = 1521))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
)
)
红色部门表示添加的
4. 配置tnsnames.ora的文件:
LOCAL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = wuwc.septwolves.com)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = local)
)
)
mssql =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = wuwc.septwolves.com)(PORT = 1521))
(CONNECT_DATA = (SID = MSSQL))
(HS=OK)
)
注意:这里的SID=“MSSQL”必须于listener.ora配置文件增加的SID_NAME的名称相同。
5. 增加init(SID).Ora文件:
在$Oracle_Home tg4msqladmin增加文件init(SID).Ora,其中SID的值为tnsnames.ora文件新增加的SID的属性值相同。该文件的内容是:
HS_FDS_CONNECT_INFO="SERVER=WUWCSQLEXPRESS;DATABASE=Asset"
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
红色部分根据sqlserver的不同做相应的修改
6. 重新启动监听程序:
7. 建数据连接:
在oracle数据库上面创建数据连接:
create database link SQL2K --根据爱好做修改
connect to SA identified by “winsocket” –sa的密码
using 'MSSQL'; --根tnsnames.ora配置的匿名相同
8. 测试是否成功:
在sql*plus 上面执行Select * from tb_codename@sql2k;假如有数据表示成功,当然tb_codename必须要在sqlserver数据库存在。
9. 注意点、疑问和解答:
a) 注意点:
l listener.ora、 tnsnames.ora和$ORACLE_HOMEtg4msqladmin下的init(sid).ora的Sid都要相同;
l 建立数据连接时using必须要用tnsnames.ora下的匿名
b) 疑问1:tnsping mssql不通或者其它情况,请重新配置listen文件
c) 使用连接查询某个表的字段必须要区分大小写和使用 双引号来引住某个字段,例如:
Sqlserver :tb_codename 的字段为:CodeType等,则在使用连接查询时,要使用这样的语句:
Select “CodeType”,” from tb_codename@sql2k;
不能使用如下语句:
Select CodeType from tb_codename@sql2k;
Select “codetype” from tb_codename@sql2k;
等,就是要注意大小写[@more@]来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/154324/viewspace-1009563/ ,如需转载,请注明出处,否则将追究法律责任。