需求描述:
    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. 移动端优化 && 清除移动端网站点击a标签时闪现的边框或遮罩层(CSS) && 移动端点击 && 文字不可选择

      在移动端网站,当你点击加了a标签的文字或图片时,该元素的周围会闪现一个蓝色的边框,在微信上的网站就是如此:而有的浏览器会闪现一个半透明遮罩层,比如移动端的Chrome浏览器,其实这些特效无非就是为 ...

  2. Map集合的四种遍历方式(转载)

    import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class TestMap { pu ...

  3. GitHub与Git指令入门

    GitHub入门 创建账户 之前做代码版本控制都是在bitbucket上面的私有仓库.现在开源社区挺火的,想在github找些开源的工程学习一下,于是加入了github,这里记录一下入门的经历. 首先 ...

  4. 从svn检出项目的注意事项

    提交到svn的时候,选择忽略.project,.settings,.classpath等文件,检出项目的时候就不能选择 [做为工作作为工作空间的项目检出].而应该选择做为新项目检出. 然后选择工程的类 ...

  5. PHP之string之ord()函数使用

    ord (PHP 4, PHP 5, PHP 7) ord - Return ASCII value of character ord - 返回字符的 ASCII 码值 Description int ...

  6. 如果天空不死博客java阅读列表整理

    如果天空不死的主页https://home.cnblogs.com/u/skywang12345 下面是最近总结的Java集合(JDK1.6.0_45)相关文章的目录. 01. Java 集合系列01 ...

  7. Django 用模板来节省公共代码,

          如果我们有一个后台网站,或者显示个人信息的网站 标题logo,边框等信息的代码都是固定的,只有部分区域是改变, 我们如果用Django来写html的话就会重复代码.这时候我们只要用模板的方 ...

  8. C语言20150620

    1-->printf()输出的时候前面没有0 是十进制,前面带0是八进制,前面有0x是十六进制 printf("%d",100):十进制解析 printf("%d& ...

  9. mysql索引对单表查询的影响

    索引被用来快速找出在一个列上用一特定值的行.没有索引,MySQL不得不首先以第一条记录开始并然后读完整个表直到它找出相关的行.表越大,花费时间越多. 如果表对于查询的列有一个索引,MySQL能快速到达 ...

  10. jQuery基础---Ajax基础

    内容提纲: 1.Ajax 概述 2.load()方法 3.$.get()和$.post() 4.$.getScript()和$.getJSON() 5.$.ajax()方法 6.表单序列化 发文不易, ...