需求描述:
    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. 关于禁止html缓存

    在现代的浏览器里,为了增强用户体验,浏览器一般都会把网页上所需的静态文件缓存到本地,再次刷新的时候则无需再重新加载,但是我们有时候就是不需要浏览器缓存这些文件,而是每次都从服务器端读取数据,可以用以下 ...

  2. PHP之mb_convert_encoding使用

    mb_convert_encoding (PHP 4 >= 4.0.6, PHP 5, PHP 7) mb_convert_encoding - Convert character encodi ...

  3. java多线程---------java.util.concurrent并发包----------ThreadPoolExecutor

    ThreadPoolExecutor线程池 一.三个构造方法 ThreadPoolExecutor(int corePoolSize,int MaxmumPoolSize,long KeepAlive ...

  4. 04 Thread的方法(源代码) 和 线程的状态

      1 .Thread中重要的属性 publicclass Thread implements Runnable { //继承自Runnable接口private char name[]; // 以c ...

  5. RabbitMQ---5、远程 IP 访问

    刚刚安装的RabbitMQ-Server-3.3.7,并且也已经开启了Web管理功能,但是现在存在一个问题: 出于安全的考虑,guest这个默认的用户只能通过http://localhost:1567 ...

  6. [javaSE] GUI(图形用户界面)

    java为gui提供的对象都在java.Awt和javax.Swing包中 Awt:抽象窗口工具包,依赖平台,调用系统的本地方法 Swing:完全由java实现的轻量级工具库 eclipse官方封装了 ...

  7. 学习Golang的步骤建议

    一.快速入门 通过快速入门可以宏观的了解Go相关知识.快速入门可以去学习 go-tour 国内可以访问的中文版的 go-tour 地址有下面一些: http://gotour.qizhanming.c ...

  8. 搭建 Visual Studio 2012 + DXperience-13.2.6 + MySql 开发平台

    一. 开发环境 1. 此开发平台主要用来开发基于.NET 4.0及以上版本的应用 2. 点击此下载 Visual Studio 2012 Ultimate 中文版开发工具 3. 点击此下载 DXper ...

  9. Spring与MyBatis整合上_Mapper动态代理方式

         将MyBatis与Spring进行整合,主要解决的问题就是将SqlSessionFactory对象交由Spring来管理..所以该整合,只需将SQLSessionFactory的对象生成器S ...

  10. 使用Mac自带svn搭建服务器,并使用idea进行连接

    一.检查Mac自带SVN版本号 二.创建代码仓库 $ mkdir -p /Users/Shared/svn/repository $ svnadmin create /Users/Shared/svn ...