zoukankan      html  css  js  c++  java
  • sqlserver 访问oracle

     sqlserver 通过链接服务器方式访问oracle 

    1.环境要求: 在sqlserver 服务器中能访问oracle服务器。 sqlserver 服务器中安装相应的oracle客户端

    2. 在oracle客户端中配置好TNS  就是在oracle相应的目录下,添加服务器的 oracle 链接字符串 如:F:appclientAdministrator1product12.1.0client_1 etworkadmin

       更改tnsnames.ora 在文件末尾中添加如下内容:

      ORCL_TEST /*要使用的服务名称 自定义*/=
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.62 /*oracle 服务器地址*/)(PORT = 1521 /*端口地址默认*/))
    )
    (CONNECT_DATA =
    (SERVICE_NAME = topprd /*实例名称*/)
    )
    )

    3. 完成1,2步之后,可以用oracle sql developer 测试1,2 是否成功。

    4.  在sqlserver manager studio 

    新建一个链接服务器:

    其中:1 必须, 2 是刚刚建立的服务名称   3,4 可以自定义

    再在安全中填写oracle的用户名和密码

    容易报错的地方:  

    无法初始化链接服务器“TEST”的 OLE DB 访问接口“OraOLEDB.Oracle”的数据源对象。
    链接服务器"TEST"的 OLE DB 访问接口 "OraOLEDB.Oracle" 返回了消息 "ORA-12154: TNS: 无法解析指定的连接标识符"。 (Microsoft SQL Server,错误: 7303)

    解决方法:

    按照网上的方案,先后使用了三种方案都没有解决问题(1.修改注册表,2.勾选“允许进程内”,3.设置dcomcnfg)。最后在一篇博客中找到了解决方案,

    将SQL Server(MSSQLSERVER)和SQL Full-Filter Deamon Launcher(MSSQLSERVER)两个服务的登录身份改为Local Service就可以了。

     如图

    1.设置这两个服务的登录身份

    参考网址:http://www.cnblogs.com/tiger2soft/p/6954308.html

    折腾了好久,终于搞定了!

    访问调用存储过程: execute ('oracle_sp_name;') at [192.168.1.50]   // exec(' exec  存储过程(?, ?)', 输入参数, @输出参数 out) at 链接服务器名

  • 相关阅读:
    CLR
    Cocos2dx 3.12 在AndroidStudio上编译配置
    MFC 调试方法
    列表初始化
    类型转换
    Cocos2d-x 3.4在AndroidStudio上编译配置
    出发 Let's Go
    LumiSoft.Net邮件接收乱码问题解决
    百度地图经纬度转换JS版
    百度经纬度和google经纬度互转
  • 原文地址:https://www.cnblogs.com/hzf08/p/7761347.html
Copyright © 2011-2022 走看看