怎样在server2000中创建链接服务器访问oracle数据库呢?
服务器A 数据库是sql2000,数据库名CheLiang
服务器B 数据库是oracle, 数据库名ShenBao
我想实现当CheLiang某个表记录状态改变时
同步更新ShenBao某个表的记录状态,所以我想在sql2000中建立链接服务器
但是小弟怎么建立都不行,不知道是不是里面的属性填写不正确。
建立之后出现如下的错误:
错误 7399:OLE DB 提供程序 'MSDAORA' 报错。
数据源填写什么呢?填写dns名称还是ip地址呢
提供程序字符串要不要填写呢,是填什么的?
请有经验的大哥指点迷惑,期待。oracle数据库相关信息 用户名:SFHacs 口令:acs_password 数据库名:orcl_36 ip:10.0.0.36

解决方案 »

  1.   

    在SQL SERVER 20000中访问ORACLE数据库服务器的几种方法
    1.通过行集函数opendatasource
    select *  from opendatasource('MSDAORA', 'Data Source=XST4;User ID=manager;Password=sjpsjsjs')..MISD.PBCATCOL
    其中,MSDAORA是OLEDB FOR ORACLE的驱动,
    用户名和表名一定要大小,服务器和用户名之间是两个点;并且User ID和要查询的用户名必须是一样的,不能以其他用户名登陆2. 使用MS SQL的openrowset函数
    select A.* from openrowset('MSDAORA','XST4';'manager';'sjpsjsjs', 'MISD.PBCATCOL') as A 
    order by A.ID
     使用这种方式一定要用别名才行3.使用ODBC方式
    select A.* from openrowset('MSDAORA','XST4_ODBC';'manager';'sjpsjsjs', 'MISD.PBCATCOL') as A order by A.ID
    XST4_ODBC是ODBC数据源4.使用链接服务器方式
    EXEC SP_ADDLINKEDSERVER
    @server='mylinkedserver',      --链接服务器名称
    @srvproduct='Oracle',          --固定
    @provider='MSDAORA',           --固定
    @datasrc='XST4'                --oracle本地服务名设置链接服务器的远程登陆数学,在安全性页面中选中“用此安全上下文进行”
      

  2.   

    谢谢你的帮忙,但是我的oracle数据库并不是在本地的。
    select *  from opendatasource('MSDAORA', 'Data Source=XST4;User ID=manager;Password=sjpsjsjs')..MISD.PBCATCOL该作怎样的修改呢?还有
    MISD.PBCATCOL是什么意思呢?
      

  3.   

    MISD.PBCATCOL是用户名和表名吧?
      

  4.   

    上面的两个问题现在明白了,不过还有一个问题没有办法解决
    create TRIGGER NoteOracle
    ON 通行记录表
    AFTER INSERT, UPDATE, DELETE
    AS
    select *  from opendatasource('MSDAORA', 'Data Source=orcl_36;User ID=SFHACS;Password=acs_password')..SFHACS.[DECLARE]
    我创建了一个触发器,目的是当我修改了sql中通行记录表的状态时,会把oracle数据库中表DECLARE中的记录select出来,但是会出错
    出现的错误如下:
    该操作未能执行,因为 OLE DB 提供程序 'MSDAORA' 无法启动分布式事务
    这个问题折腾了我一整天了,万分期待各位大哥帮忙指点