zoukankan      html  css  js  c++  java
  • sql server 与oracle数据互导的一种思路--sql server链接服务器

    思路:通过在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数据互导有了一个基本的思路。

  • 相关阅读:
    JavaSE Day11
    JavaSE Day10
    JavaSE Day9
    JavaSE Day8
    JavaSE Day7
    a
    js 操作 字符串
    委托的生明与使用
    T-SQL 的简单查询语句
    asp.net服务控件的生命周期
  • 原文地址:https://www.cnblogs.com/weiweictgu/p/5480909.html
Copyright © 2011-2022 走看看