Oracle 访问 Sql Server
2014-02-14 15:30
197 查看
主机 | 操作系统 | 软件环境 |
GateWay 192.168.100.6 | Windows XP | Oracle 10g SQL Server 2000 Client |
Finasvr 10.1.1.13 | Windows 2000 Server | SQL Server 2000(访问的数据库是SQLTest) |
一. SQLDB的配置 在SQL SERVER上建立用户testuser/testuser, 并授予可访问SQLTest的权限(Oracle数据库通过该用户访问SQL Server)。 二.GATEWAY的配置(%ORACLE_HOME% 如C:\Oracle\product\10.2.0\) 1.安装ORACLE10g的透明网关(Oracle Transparent Gateway)选项 Microsoft SQL Server。 安装时需要选择SQL SERVER主机和数据库(server:10.1.1.13, DB:SQLTest)。 2.安装SQL Server2000,因为是WINDOWS XP,所以只装了SQL Server 2000客户端。 3.拷贝%ORACLE_HOME%\tg4msql\admin\inittg4msql.ora改名为initSID_NAME.ora(example:initFinasvrHZ.ora),这是网关进程启动时需要的初始化文件,修改HS_FDS_CONNECT_INFO这行,其他的内容不变。比如: HS_FDS_CONNECT_INFO="SERVER=Finasvr;DATABASE=SQLTest" or HS_FDS_CONNECT_INFO="Finasvr.SQLTest" 4.修改%ORACLE_HOME%\network\admin 下listener.ora内容如下: LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) ) ) #这边的HOST一定是localhost,而不是SQL SERVER那台机器 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = C:\Oracle\product\10.2.0) (PROGRAM = extproc) ) (SID_DESC= (SID_NAME=finasvrhz) (ORACLE_HOME= C:\Oracle\product\10.2.0) (PROGRAM=tg4msql) ) ) 5.重启动GateWay上(IP:192.168.100.6)TNSListener服务 三.ORADB的配置($ORACLE_HOME=/u01/app/oracle/oracle/product/10.2.0/db_1/) 在$ORACLE_HOME/network/admin/tnsnames.ora, 添加下面的内容 finasvrlk = # 连接字符串可以随便取 (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.6)(PORT = 1521)) (CONNECT_DATA = (SID = finasvrhz) #SID_NAME与上面的SID_NAME相同 ) (HS=OK) #固定为OK ) 保存tnsnames.ora后,可以用TNSPING命令测试listener 设置数据库参数global_names=false。 设置global_names=false不要求建立的数据库链接和目的数据库的全局名称一致。global_names=true则要求建立的数据库链接和目的数据库的全局名称一致。 alter system set global_names=false; 建立数据库链接: create database link sqllink connect to testuser identified by “testuser” using ‘finasvrlk’; 访问SQL Server下数据库里的数据: select * from temp@sqllink; 使用透明网关只可以用标准的 DML,并及时提交 关于出现ORA-28545错误,在我这发生的原因是因为配置了listner之后没有重新启动它,当然,前提是在设置都正确下,出现了这个错误。 SQL> select * from t@sqllink; select * from t@sqllink * ERROR 位于第 1 行: ORA-28545: 连接代理时 Net8 诊断到错误 NCRO:无法执行 RSLV 连接 ORA-02063: 紧接着2 lines(源于SQLLINK) 解决:lsnrctl stop / lsnrctl start 另外, 蓝色字体标明的几个名称要特别注意!
相关文章推荐
- SQL Server 2005通过LinkServer访问Oracle 11G
- 通过SQL Server 2008 访问Oracle 10g
- .net 2.0 访问Oracle --与Sql Server的差异,注意事项,常见异常
- .net 2.0 访问Oracle --与Sql Server的差异,注意事项,常见异常
- .net 2.0 访问Oracle --与Sql Server的差异,注意事项,常见异常
- SQL SERVER 2008 通过链接服务器(Linked Server)访问 ORACLE 9i /10g的方法 (亲测)
- 透过SQL Server 2008访问Oracle 11g的配置方法
- 通过SQL Server 2008 访问Oracle 10g
- oracle gateways 访问 sql server
- 通过SQL Server 2008 访问Oracle 10g
- sql server 中访问oracle
- .net 2.0 访问Oracle --与Sql Server的差异,注意事项,常见异常
- 通过SQL Server 访问Oracle
- SQL 教程数据库包括:Oracle, Sybase, SQL Server, DB2, Access 等等,您将学到如何使用 SQL 访问和处理数据系统中的数据
- .net 2.0 访问Oracle --与Sql Server的差异,注意事项,常见异常
- 使 Oracle 能同时访问多个SQL Server 的设置方法
- 阿里巴巴 静态数据项目 (SQL SERVER 通过链接服务器访问ORACLE 存储过程 )
- net 2.0 访问Oracle --与Sql Server的差异,注意事项,常见异常
- net 2.0 访问Oracle --与Sql Server的差异,注意事项,常见异常
- 使 Oracle 能同时访问多个SQL Server 的设置方法