思路:通过在sql server数据库中添加链接服务器,可以远程查询oracle数据库的表
环境准备,安装sql server数据库,并安装好oracle驱动,在配置好tnsname文件中配置好oracle连接,本人用的sql server2008 R2,oracle11g测试,提供程序采用的OraOLEDB.Oracle(网上很多文章说这个不能成功,要选择Microsoft OLE DB Privider for oracle,可我选择这个配置成功,估计是不能同时存在两个,如果有两个,sql server默认用微软的)

tnsmae配置如下:

orcl11 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = wilsonpc3 )(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl11 )
)
)

  

首先确保sql server 所在机器通过sqlplus能够正常连接oracle

在sql server链接服务器中添加oracle的访问,命名为Oracl

在SQL Server Management Studio中远程查询oracle数据库

select * from openquery(Oracl,'select EMPNO
,ENAME
,JOB
,MGR
,HIREDATE
,SAL
,COMM
,DEPTNO from emp') a
inner join EMP b
on a.empno=b.EMPNO
and b.EMPNO=7369

  

openquery 结果相当于返回的是一个远程的表对象,可以当做表去做sql语句的链接操作,也可对oracle数据进行更新删除操作 ,例如下面的代码是对远程的oralcle数据库进行插入操作 :

insert into openquery(Oracl,'select EMPNO
,ENAME
,JOB
,MGR
,HIREDATE
,SAL
,COMM
,DEPTNO from emp')
select [EMPNO]+1000
,[ENAME]
,[JOB]
,[MGR]
,[HIREDATE]
,[SAL]
,[COMM]
,[DEPTNO]
from emp

  

删除操作:

delete from openquery(Oracl,'select EMPNO
,ENAME
,JOB
,MGR
,HIREDATE
,SAL
,COMM
,DEPTNO from emp')
where empno='7369'

  有了以上的操作方法,sql server与oracle数据互导有了一个基本的思路。

sql server 与oracle数据互导的一种思路--sql server链接服务器的更多相关文章

  1. java.sql.SQLException: ORA-01578: ORACLE 数据块损坏问题解决办法

    错误信息: java.sql.SQLException: ORA-01578: ORACLE 数据块损坏 (文件号 17, 块号 315703) ORA-01110: 数据文件 17: 'D:\ORA ...

  2. 详解Oracle数据货场中三种优化:分区、维度和物化视图

    转 xiewmang 新浪博客 本文主要介绍了Oracle数据货场中的三种优化:对分区的优化.维度优化和物化视图的优化,并给出了详细的优化代码,希望对您有所帮助. 我们在做数据库的项目时,对数据货场的 ...

  3. 移动oracle数据文件的两种方法

    1.alter database方法该方法,可以移动任何表空间的数据文件. ***关闭数据库***SQL> shutdown immediateDatabase closed.Database ...

  4. SQL分组排序后取每组最新一条数据的另一种思路

    在hibernate框架和mysql.oracle两种数据库兼容的项目中实现查询每个id最新更新的一条数据. 之前工作中一直用的mybatis+oracle数据库这种,一般写这类分组排序取每组最新一条 ...

  5. Asp.net Json数据解析的一种思路

    在日常的编码中,经常会遇到JSON类型的数据,有简单的,也有复杂的.对于简单的,我们可以用正则等匹配,但是一旦遇到复杂的,就比较难办了. 数据分析 目前手头上需要制作一个天气预报功能,现成的接口已经有 ...

  6. sql server 使用链接服务器连接Oracle,openquery查询数据

      对接问题描述:不知道正式库oracle数据库账户密码,对方愿意在对方的客户端上输入账号和密码,但不告诉我们 解决方案:使用一台sql server作为中间服务器,可以通过转存数据到sql serv ...

  7. SQL Server的链接服务器(MySQL、Oracle、Ms_sql、Access、SYBASE)

    原文:SQL Server的链接服务器(MySQL.Oracle.Ms_sql.Access.SYBASE) 一.使用 Microsoft OLE DB Provider For ODBC 链接MyS ...

  8. 在64位SQL Server中创建Oracle的链接服务器 Link Server

    有时候我们希望在一个sqlserver下访问另一个sqlserver数据库上的数据,或者访问其他oracle数据库上的数据,要想完成这些操作,我们首要的是创建数据库链接. 数据库链接能够让本地的一个s ...

  9. Sql Server中的数据类型和Mysql中的数据类型的对应关系(转)

    Sql Server中的数据类型和Mysql中的数据类型的对应关系(转):https://blog.csdn.net/lilong329329/article/details/78899477 一.S ...

随机推荐

  1. unity, animtion倒放

    AnimationState.speed Description The playback speed of the animation. 1 is normal playback speed. A ...

  2. wikioi 1012最大公约数和最小公倍数【根据最大公约数和最小公倍数求原来的两个数a、b】

    /*====================================================================== 题目描述 输入二个正整数x0,y0(2<=x0& ...

  3. fastBinaryJSON

    fastBinaryJSON 是基于 fastJSON 的二进制 JSON 序列化器.详细介绍请看这里. 数据编码格式: 序列化速度比较:

  4. fiddler filter 过滤css 图片等

    找到 request header->Show only if yrl contains: REGEX:(?insx)/[^\?/]*\.(css|ico|jpg|png|gif|bmp|wav ...

  5. 国内的阿里云maven私服

    <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> <name>Nexu ...

  6. Innodb 存储引擎(转)

    第一部分:线程 Innodb是一个多线程的,各个线程负责不同的任务.主要的线程有:Master Thread.IO Thread.Purge Thread.Page Cleaner Thread. 一 ...

  7. Andaroid L新特性

    1.Material Design”(材料设计)的全新设计理念,和Holo相比,Material Design更加色彩丰富,不像Holo那样灰暗 2.1)卡片风格(锁屏界面) 2)环动式设计  And ...

  8. Tomcat连接池

    步骤1: 找到Tomcat安装目录下的context.xml文件,在config目录下.在<Context/>节点下加入: <Resource name="jdbc/myt ...

  9. erlang尾递归的概括

    网上看了些,自己总结了下 .没有局部变量,否则会爆栈 .递归函数的参数里面,至少有一个用来作为循环,另外一个一般用来保存临时结果,两者一起形成循环

  10. asp.net中Respons.Write()的用法

    很多时候,我们为了是页面的传输速率更高.很自然回去选择脚本和ajax结合进行传值,在传值如要向页面回传数据时,可能只有一次也会是多次.一次的情况下我们可以很好的用Respons.End()方法来截取我 ...