知识大全 在ORACLE里设置访问多个SQL Server数据库

Posted 数据库

篇首语:面对艰难困苦,懦弱者被磨去棱角;勇敢者将意志品质磨砺得更为坚强。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在ORACLE里设置访问多个SQL Server数据库相关的知识,希望对你有一定的参考价值。

在ORACLE里设置访问多个SQL Server数据库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  ORACLE访问SQL SERVER数据库有一篇《Oracle 异构服务实践》讲得很清楚     但里面没有讲如何设置访问多个SQL Server数据库 我就补充一下     假设我们要在ORACLE里同时能访问SQL Server里默认的pubs和Northwind两个数据库      在安装了ORACLE i Standard Edition或者ORACLE i Enterprise Edition的windows机器上(IP: )  产品要选了透明网关(Oracle Transparent Gateway)里要访问Microsoft SQL Server数据库     $ORACLE I_HOME\\tg msql\\admin下新写initpubs ora和initnorthwind ora配置文件  initpubs ora内容如下:  HS_FDS_CONNECT_INFO= SERVER=sqlserver_hostname;DATABASE=pubs   HS_DB_NAME=pubs  HS_FDS_TRACE_LEVEL=OFF  HS_FDS_RECOVERY_ACCOUNT=RECOVER  HS_FDS_RECOVERY_PWD=RECOVER    initnorthwind ora内容如下:  HS_FDS_CONNECT_INFO= SERVER=sqlserver_hostname;DATABASE=Northwind   HS_DB_NAME=Northwind  HS_FDS_TRACE_LEVEL=OFF  HS_FDS_RECOVERY_ACCOUNT=RECOVER  HS_FDS_RECOVERY_PWD=RECOVER    (蓝色字的部分可以根据具体要访问的SQL Server数据库的情况而修改)    $ORACLE I_HOME\\neork\\admin 下listener ora内容如下:    LISTENER =  (DESCRIPTION_LIST =  (DESCRIPTION =  (ADDRESS_LIST =  (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = ))  )  )  )  SID_LIST_LISTENER =  (SID_LIST =  (SID_DESC =  (GLOBAL_DBNAME = test )  (ORACLE_HOME = d:\\oracle\\ora )  (SID_NAME = test )  )  (SID_DESC=  (SID_NAME=pubs)  (ORACLE_HOME=d:\\Oracle\\Ora )  (PROGRAM=tg msql)  )  (SID_DESC=  (SID_NAME=northwind)  (ORACLE_HOME=d:\\Oracle\\Ora )  (PROGRAM=tg msql)  )  )    重启动这台做gateway的windows机器上(IP: )TNSListener服务     (凡是按此步骤新增可访问的SQL Server数据库时 TNSListener服务都要重启动)   ORACLE I ORACLE I的服务器端配置tnsnames ora 添加下面的内容:  pubs =  (DESCRIPTION =  (ADDRESS_LIST =  (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = ))  )  (CONNECT_DATA =  (SID = pubs)  )  (HS = pubs)  )    northwind =  (DESCRIPTION =  (ADDRESS_LIST =  (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = ))  )  (CONNECT_DATA =  (SID = northwind)  )  (HS = northwind)  )    保存tnsnames ora后 在命令行下    tnsping pubs  tnsping northwind    出现类似提示 即为成功  Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = )  (PORT = ))) (CONNECT_DATA = (SID = pubs)) (HS = pubs))  OK( 毫秒)    Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = )  (PORT = ))) (CONNECT_DATA = (SID = northwind)) (HS = northwind))  OK( 毫秒)    设置数据库参数global_names=false     设置global_names=false不要求建立的数据库链接和目的数据库的全局名称一致   global_names=true则要求 多少有些不方便     oracle i和oracle i都可以在DBA用户下用SQL命令改变global_names参数    alter system set global_names=false;    建立公有的数据库链接:    create public database link pubs connect to testuser identified by testuser_pwd using pubs ;    create public database link northwind connect to testuser identified by testuser_pwd using northwind ;    (假设SQL Server下pubs和northwind已有足够权限的用户登录testuser 密码为testuser_pwd)    访问SQL Server下数据库里的数据:    select * from stores@pubs;         select * from region@northwind;          使用时的注意事项  ORACLE通过访问SQL Server的数据库链接时 用select * 的时候字段名是用双引号引起来的     例如   create table stores as select * from stores@pubs;    select zip from stores     ERROR 位于第 行:  ORA : 无效列名    select zip from stores;    zip                       已选择 行     用SQL Navigator或Toad看从SQL Server转移到ORACLE里的表的建表语句为:    CREATE TABLE stores  ( stor_id            CHAR( ) NOT NULL    stor_name           VARCHAR ( )    stor_address          VARCHAR ( )    city              VARCHAR ( )    state             CHAR( )    zip              CHAR( ))  PCTFREE     PCTUSED     INITRANS     MAXTRANS     TABLESPACE users  STORAGE  (  INITIAL     NEXT       PCTINCREASE   MINEXTENTS    MAXEXTENTS    )  /  总结: WINDOWS下ORACLE i网关服务器在$ORACLE I_HOME\\tg msql\\admin目录下的initsqlserver_databaseid ora  WINDOWS下ORACLE i网关服务器listener ora里面  (SID_DESC=  (SID_NAME=sqlserver_databaseid)  (ORACLE_HOME=d:\\Oracle\\Ora )  (PROGRAM=tg msql)  )    UNIX或WINDOWS下ORACLE I ORACLE I服务器tnsnames ora里面  northwind =  (DESCRIPTION =  (ADDRESS_LIST =  (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = ))  )  (CONNECT_DATA =  (SID = sqlserver_databaseid)  )  (HS = sqlserver_databaseid)  )    sqlserver_databaseid一致才行    cha138/Article/program/Oracle/201311/16587

相关参考

知识大全 通过HTTP访问SQL Server 2000

通过HTTP访问SQLServer2000  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一建立

知识大全 SQL Server 2005 控制用户权限访问表

SQLServer2005控制用户权限访问表  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一需

知识大全 用DELPHI编程访问SQL SERVER数据库

用DELPHI编程访问SQLSERVER数据库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  D

知识大全 SQL Server如何访问sybase数据库的表

SQLServer如何访问sybase数据库的表  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 解决限制访问SQL Server的IP地址的办法

解决限制访问SQLServer的IP地址的办法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nb

知识大全 当我正在为表建立索引的时候,SQL Server 会禁止对表的访问吗

当我正在为表建立索引的时候,SQLServer会禁止对表的访问吗?  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一

知识大全 sql server2005设置自动备份全过程

  ()首先启动SQlServer代理(如果备份出现问题代理会通知管理员)  ()在服务器对象里面>新建备份设备  ()创建操作员当备份成功或者失败的时候通过网络通信通知管理员  ()在管理里面

知识大全 SQL Server和Oracle的常用函数对比

SQLServer和Oracle的常用函数对比  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  数

知识大全 Oracle 专业人员使用的SQL Server 2000

Oracle专业人员使用的SQLServer2000  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 Oracle和SQL Server存储调试和出错处理

Oracle和SQLServer存储调试和出错处理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!