热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

sqlserver连接oracle配置详解

方法一:一、安装配置oracle客户端要访问orcale数据,必须在访问的客户端机器上安装oracle客户端。Orcale有两种形式的客户端:l完整的客户端包括访问服务器端数据库的基本Oracl

方法一:

 
一、 安装配置oracle客户端
要访问orcale数据,必须在访问的客户端机器上安装oracle客户端。

Orcale有两种形式的客户端:
l 完整的客户端
包括访问服务器端数据库的基本Oracle 的 Microsoft OLE DB 访问接口需要 Oracle Client Software Support File以及 SQL*Net 。还包括用于配置客户端设置的工具、sqlplus、企业管理器等一系列的工具。
l 立即客户端(instant client)
这个客户端体积很小,但是只包括了访问orcale服务器的最基本的支撑驱动,没有设置管理工具,也找不到可用的图形界面。对客户端的设置需要手工就行。
目前orcale比较新的是oracle 10g版本,以这个版本为例。
1、下载oracle 10 的客户端
可以到orcale官方网站下载,需要先注册,然后下载。
下载适用于Microsoft Windows (32-bit)的Oracle Database 10g Client Release 2的客户端,下载地址:http://download.oracle.com/otn/nt/oracle10g/10201/10201_client_win32.zip
2、安装oracle 10 客户端
下载好后,解压,安装。
安装时有四个选项:
l Instantclient,相当于最小化安装。
l 管理员,完整安装。
l 运行时
l 自定义
为了管理方便,一般以管理员方式安装。
3、配置oracle 10 客户端
在客户端主要需要配置两个设置,命名方法和服务器别名,还有一个监听程序是服务端需要用的,用来监听客户端的访问,客户端不必设置监听程序。
这些设置都能在net manager工具中进行,在oracle程序组中的“配置和移植工具”中的“net manager”。如图所示:



概要文件就是用来设置命名方法和验证方式的的
3.1. 命名方法
在窗口左面的上部下拉列表中选“命名”,左边窗口显示目前可用的方法,右边是已经选择的命名方法,几个主要的命名方法有:
l TNSNAMES表示采用TNSNAMES.ORA文件来解析
l ONAMES表示Oracle使用自己的名称服务器(Oracle Name Server)来解析,目前Oracle建议使用轻量目录访问协议LDAP来取代ONAMES
l HOSTNAME表示使用host文件,DNS,NIS等来解析
一般使用本地命名方式来解析服务器名,即使用TNSNAMES.ORA中设置的服务器名。TNSNAMES.ORA中的服务器名服务器别名中设置。
3.2. 验证方式




在下拉列表中选择“orcale高级安全性”,设置用户连接Oracle服务器时使用哪种验证方式。在下面的左边窗口显示可用的验证方式,右边是已选的验证方式,主要的验证方式有:
l NTS表示操作系统身份验证
l NONE,什么都不选表示Oracle数据库身份验证
l KERBEROS5,使用kerberos 5 验证方式
这些验证方式可以同时采用,一般采用Oracle数据库身份验证,即这里什么都不用设置即可,选了其他验证方式也不影响Oracle数据库身份验证。
3.3. 服务器别名
上面命名方法中选择了TNSNAMES本地命名方法时,在这里设置服务器的别名。
在左边窗口选“服务命名”,就可以新增和编辑本地服务器别名。这里生成的服务器别名都反映在tnsnames.ora文件中。
本地服务器命名设置的服务器实际上设置了服务器的四个主要参数:服务器主机名(可以是主机名也可以是主机ip)、服务器端口号(默认1521)、访问协议、要访问服务器上数据库服务名。



这里的exchange是客户端的服务器别名,客户端访问服务端数据库就要使用这个名称。
服务名databaseName是服务端需要访问的那个数据库的服务名。
下面就是这个服务端的ip、端口和协议(一般为TCP/IP).

设置服务器别名后,在tnsnames.ora文件中这样反映出来:
EXCHANGE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 203.175.156.82)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = exchang)
)
)
二、 Sql server中新建指向orcacle的链接服务器
上面在客户端设置了访问oracle服务器的必要设置,客户端可以通过oracle的客户端访问orcale服务端的数据库了。
这里只讨论使用sql server的链接服务器链接oracle服务器访问数据的情况。
设置如下:
l 在sql server中新建一个链接服务器,比如链接服务器名为:oracle_exchange
l 数据访问接口选择:Microsoft OLE DB Provider for Oracle
l 产品名称:Oracle
l 数据源:就是上面步骤中建立的服务器别名,代表要访问的oracle服务器上的要访问的那个数据库。
l 在安全性中选“使用此安全上下文建立连接”,然后输入访问oracle的用户名和密码。
Ok,其他的上面没有提到的设置不需要设置。下面即可通过。

三、 在sql server中通过链接服务器访问orcale
由于orcale的服务名是直接指向到orcale服务器上的某一个数据库,所有通过链接服务器访问orcale的数据是这样的形式(指定数据库的位置不需要填):
服务器别名..所有者.数据库对象
oracle_exchange..username.tablename

方法二:


假设Oracle数据库的用户名为test,密码为test,在SQL Server数据库所在服务器上建立的指向Oracle数据库的服务命名为hisorcl.
1. 在SQL Server的企业管理器中的对象资源管理器中,展开“服务器对象”,在“链接服务器”上右击,选“新建链接服务器”。如下图所示进行配置。





通过连接查询Oracle数据库中的数据

select * from openquery(TEST_ORA, 'SELECT * FROM BASEMETADATA_DEPARTMENT')


使用下面的这个方法会报“……为列提供的元数据不一致……”的错误信息。

SELECT * FROM TEST_ORA..TEST.BASEMETADATA_DEPARTMENT


通过连接向Oracle中的表插入数据

INSERT OPENQUERY(TEST_ORA, 'select DepartmentId,DeptName,DeptCode from BaseMetaData_Department')
select DepartmentId,DeptName,DeptCode from BaseMetaData_Department


方法三:

 

1、SQL_SERVER 2008服务器上安装Oracle 9i/10g数据库或者客户端。 

2、新建一个数据库,  ORCL    用户名:SA     密码:sa      建一个表格:TEMP    顺便可以插入一些数据

3、我的电脑-属性管理-服务,确认Distributed Transaction Coordinator服务已启动,这个服务确定要启动。

4、打开SQL SERVER Management Studio,服务器对象-连接服务器-新建连接服务器。

5、链接服务器:写上链接服务器的名字,可以随便定,如:ORACLE

     服务器类型,选择其他数据源

     访问接口:选择 Microsoft OLE DB Provider for Oracle

     如果安装了数据库,用Oracle Provider for OLE DB也可以

     产品名称:写上 Oracle  这个是固定的

     数据源:写上数据库的实例名  ORCL

    访问接口字符串:user id=SA;password= sa

    也可以用提供的访问接口名   如:OraOLEDB.Oracle

  (用Oracle Provider for OLE DB时可不填)

    在选择安全性选项页,使用此安装上下文建立连接:

    远程登录:SA

    使用密码:sa

 

这样就可以在连接服务器栏里看到新建的连接服务器,里面有数据

 

 

6、如果在SQL2008查询分析器中查询

     写法有两种

     使用T-SQL语法:

       SELECT * FROM[ORACLE]..[SA].[TEMP]

     使用PLSQL语法:

     SELECT * FROM openquery(ORACLE,'SELECT * FROMSA.TEMP')


推荐阅读
  • 1.3.4ProfilerSQLServerProfiler是一个图形化的管理工具用于监督记录和检查SQLServer数据库的使用情况对系统管理员来说它是一个监视用户活动的间谍1. ... [详细]
  • 一个不错的JDBC连接池教程(带具体例子)
    1.前言数据库应用,在许多软件系统中经常用到,是开发中大型系统不可缺少的辅助。但如果对数据库资源没有很好地管理(如:没有及时回收数据库的游 ... [详细]
  • 从分布式数据库选型的第一件事谈起
    本文很长,谨慎阅读现在在我们的面前摆着太多的分布式数据库可以让我们选择,那么如果我想先让 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 当当开源shardingjdbc,轻量级数据库分库分表中间件详解数据库
    近期,当当开源了数据库分库分表中间件sharding-jdbc。Sharding-JDBC是当当应用框架ddframe中,从关系型数据库模块dd-rdb中分离出来的数据库水平分片框 ... [详细]
  • 定制数据层关键字:数据层,访问,元数据,数据访问模型http://www.gaodaima.com/35448.html定制数据层_sqlserver ... [详细]
  • 在Sqlserver数据库历代版本当中,系统数据库有四个,master,model,msdb,tempdbmaster----记录SQLServer系统的所有系统级信息。这包括实例范围的元数 ... [详细]
  • SQLServer2008全套 数据库简介,分离,收缩,快照
    第三课视频笔记:联机丛书的使用附加和分离数据库---收缩数据库--------数据库快照 ... [详细]
  • 这篇文章主要讲解了“SQLServer与Access数据库ASP代码有什么区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深 ... [详细]
  • php5.3.x访问sqlserver2005
    由于项目需要,临时用php访问Sqlserver数据库,于是配置mssql扩展,但是无法访问,按照网上各种dll文件copy都不成功,最后终于发现是php版本问题,我的版本是php5.3 ... [详细]
  • 以下数据来源于TRDIR,TRDIRT,有一些对应系统的事务,有具体的T-CODE.以下我会标注一些我个人认为会常用到的.程序功能描述RSORA000O ... [详细]
  • 工作以来接触到的技术流
    2019独角兽企业重金招聘Python工程师标准下面是工作以来接触到的技术平台,以及技术方案。部分在项目中深入过,部分仅选型、实践过。不断补充中. ... [详细]
  • 微软平台的软件开发系统中,有着一套自己的约定规则。熟悉.net开发的都会对异常处理不陌生,现阶段的各种编程语言中,都不乏异常处理机制,个中原理也都大同小异。sqlserver在批处 ... [详细]
  • 在目标队列中对消息进行排队时出现异常。错误:15404,状态:19。CouldnotobtaininformationaboutWindowsNTgroupuserSERVER ... [详细]
  • SqlServer分区表概述(转载)
    什么是分区表一般情况下,我们建立数据库表时,表数据都存放在一个文件里。但是如果是分区表的话,表数据就会按照你指定的规则分放到不同的文件里,把一个大的数据文件拆分为多个小文件,还可以把这些小文件 ... [详细]
author-avatar
张小白
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有