需求描述:
    SQL Server数据库连接Oracle数据库
 
条件准备:
    SQL Server数据库,SQL Server 2008R2
    Oracle数据库,Oracle 12.2.0.1.0
    Oracle客户端,Oracle 11g Client或Oracle 12c Client
 
    必须在SQL Server数据库主机安装Oracle客户端(ODBC驱动),并配置tnsnames.ora
 
连接方式
    使用  linked server 或 rowset function
 
    linked server方式,主要是采用sp函数包进行配置和连接Oracle数据库(其他数据库也同样适用)
语法 
sp_addlinkedserver [ @server= ] 'server' [ , [ @srvproduct= ] 'product_name' ] [ , [ @provider= ] 'provider_name' ] [ , [ @datasrc= ] 'data_source' ] [ , [ @location= ] 'location' ] [ , [ @provstr= ] 'provider_string' ] [ , [ @catalog= ] 'catalog' ] provider可选值【SQLNCLI | SQLOLEDB】->SQL Server、【OraOLEDB.Oracle】->Oracle、【MSDASQL】->POSTGRESQL、【 Microsoft.Jet.OLEDB.4.0】->EXCEL
    举例:

--创建链接别名
exec master.dbo.sp_addlinkedserver
@server = 'Oraclelink',--指定链接数据库的别名
@srvproduct = 'oracle',--链接对象数据库的产品
@provider = 'OraOLEDB.Oracle',--驱动器
@datasrc = 'HMDB0'--要访问的服务器,oracle需提供tnsnames.ora配置的别名
go --登录链接数据库
exec master.dbo.sp_addlinkedsrvlogin
@rmtsrvname = 'Oraclelink',--指定需登录的数据库链接别名
@locallogin = NULL,--本地服务器的登录名,直接访问Windows Server组成员
@useself = 'false',--关闭本地登录,true值使用本地账户认证,会忽略rmtuser和rmtpassword参数
@rmtuser = 'dbmonitor',--登录数据库用户名
@rmtpassword = 'xxxxxx'--登录密码
go --查询oracle数据库测试
--数据库的格式必须是 链接别名..ORACLE用户名.表名
select * from Oraclelink..DBMONITOR.UNIQUE_T;
go --查看当前所有链接列表
exec sp_linkedservers --删除linked server
Exec sp_droplinkedsrvlogin Oraclelink,NULL --删除链接服务器的登陆帐户
Exec sp_dropserver Oraclelink --删除链接数据库别名
 
   
    
    rowset function方式
                 首先图形界面创建链接数据库别名
      
                

      

      

                    测试成功
       

      

    
  行集函数返回一个可用替代Transact-SQL语句中表引用的对象
                 OPENQUERY
                      语法: OPENQUERY ( linked_server ,'query' )
 
                        SELECT  * FROM OPENQUERY  ( ORACLELINK,'SELECT * FROM UNIQUE_T');
                        
       

INSERT
INSERT OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles') VALUES ('NewTitle');
UPDATE
UPDATE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE id = 101') SET name = 'ADifferentName';
DELETE
DELETE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE name = ''NewTitle''');
参考:
 

MSSQL->serverlink[Oracle]的更多相关文章

  1. 异常 SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]

    使用Spring 的JDBCtemplate 调用数据库的时候 出现了如下的问题 SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-S ...

  2. Mybatis运行错误:信息: SQLErrorCodes loaded: [DB2, Derby, H2, HDB, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]

    Mybatis运行出现错误提示: 五月 23, 2018 12:07:22 上午 org.springframework.jdbc.support.SQLErrorCodesFactory <i ...

  3. SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase] 错误

    在一次改bug的过程,爆出了数据库错误,但是一看后面控制台,并没有爆出以前的具体的数据库错误的原因,而是 SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, In ...

  4. SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase, Hana]

    Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-co ...

  5. SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase

    sqlserver 插入数据的时候 插入失败,报错内容为 “SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, ...

  6. 非常不错的ASP操作数据库类,支持多数据库MSSQL,ACCESS,ORACLE,MYSQL等

    可同时操作多个不同类型的数据库. 完全不用考虑数据类型的差别,再也不用想字符型字段加不加单引号. 调用非常简单,对数据库的主要操作一般只需要一行代码. 支持mssql事务回滚. 可自动生成和输出sql ...

  7. A way to find out how activity for mssql and oracle

    Dear buddy, Have you confuse that how activity about my databases, if we conside it by using backup ...

  8. MSSQL和Oracle常用函数比对

    数学函数 序号 函数功能 SQL Server用法 Oracle用法 1 绝对值 select abs(-1) value select abs(-1) value from dual 2 取整(大) ...

  9. C#开发的高性能EXCEL导入、导出工具DataPie(支持MSSQL、ORACLE、ACCESS,附源码下载地址)[转]

    转自:http://www.cnblogs.com/yfl8910/archive/2012/05/19/2509194.html 作为财务数据核算人员,面对大量的业务与财务数据,借助于传统的EXCE ...

  10. 600万用户数据导入MYSQL、MSSQL、Oracle数据库方法【转】

      1.导入MySql数据库 参考文献:http://zhuaxia.org/blog/post/145 1.1.LOAD DATA INFILE语法 因为获得的数据库文件是一个文本文件www.csd ...

随机推荐

  1. sublime text 3 快捷键&&使用技巧

    参考文章:https://github.com/jikeytang/sublime-text 这里有很多技巧http://www.jianshu.com/p/3cb5c6f2421c/ 置顶: Ctr ...

  2. Ubuntu 下 unzip用法

    unzip [参数] <压缩文件> 参数: -P <密码> zip 压缩包的密码-f 覆盖原有文件-d <路径> 指定解压路径-n 解压缩时不覆盖原有文件-o 不经 ...

  3. encodeURI、encodeURIComponent、btoa及其应用场景

    escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z encodeURI不编码字符有82个:!,#,$,&,’,(,),*,+,,,-,.,/,:,;,=,?,@ ...

  4. 【转载】log4j详解使用

    log4j详解 日志论    在应用程序中输出日志有有三个目的:(1)监视代码中变量的变化情况,把数据周期性地记录到文件中供其他应用进行统计分析工作. (2)跟踪代码运行进轨迹,作为日后审计的依据.  ...

  5. com.alibaba.dubbo.rpc.RpcException: Failed to invoke remote method解决方法

    报错日记: Caused by: com.alibaba.dubbo.rpc.RpcException: Failed to invoke remote method: getUserAuthLeve ...

  6. Types的Type访问模式

    在Types类中定义的访问都类如下: 1.MapVisitor类 2.SimpleVisitor 3.UnaryVisitor 4.TypeRelation

  7. 在Linux上创建webrev[基于git]

    在Sun/Oracle工作了N(>12)年后,对webrev工具甚为喜欢,因为其易用性确实非常好.幸运的是,有工程师将webrev工具放到了GitHub上,而且支持git. 下面给出使用webr ...

  8. linux 安装jdk 二进制版本,非安装版

    0.下载jdk8 登录网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html选择对 ...

  9. Hudson-ci/Using Hudson/Installing Hudson/Installing Hudson RPM--官方文档

    < Hudson-ci‎ | Using Hudson‎ | Installing Hudson(Redirected from Hudson-ci/Installing Hudson RPM) ...

  10. [PY3]——pwd | grp 模块

    pwd和grp模块都非常简单粗暴,各自分别下面都只有三个函数,来根据/etc/passwd./etc/group文件获取相关信息 getpwuid(UID):根据UID获取用户信息,返回一个list ...