EXEC sp_addlinkedserver 'OracleSvr', 
   'Oracle 7.3', 
   'MSDAORA', 
   'ORCLDB'
GOdelete from openquery(mailser,'select *  from yulin')select *  from openquery(mailser,'select *  from yulin')update openquery(mailser,'select * from  yulin where id=15')set disorder=555,catago=888insert into openquery(mailser,'select disorder,catago from  yulin')values(333,777)

解决方案 »

  1.   

    我的也是,用微软的MSDAORA没问题,用oracle的ole db不行
      

  2.   

    EXEC sp_serveroption 'TEST', 'query timeout', '10'!
    我建议你用分析器看看返回值是1或0!如果为0,你可以用sp_configure 设置一下!
    还有一点就是权限的问题!
    只有 sysadmin 和 setupadmin 固定服务器角色的成员(SA)才能执行 sp_serveroption!
      

  3.   

    to showmetoyou(鸿飞):请看清楚我的问题,'TEST'是到Oracle的链接服务器,不是SQL Server,不能用sp_configure
      

  4.   

    sp_serveroption有2个选项,QUERY TIMEOUT 和connect timeout
    所以我建立你配置CONNECION TIMEOUT,而QUERY TIMEOUT使用ORACLE的默认值,
    EXEC sp_serveroption 'TEST', 'CONNECTION timeout', '100'
    GO关于ORACLE的QUERY TIMEOUT的配置,你可以看看:http://expert.csdn.net/Expert/topic/2219/2219776.xml?temp=.696026
      

  5.   

    谢谢leimin(黄山光明顶) 的建议,不过很不幸,一样会被阻塞住。上午试了一下,发现用Oracle自带的OLEDB驱动也是可以用的,只需要设置其提供程序选项“允许InProcess”。不过不能用四部分名称格式,要用OpenQuery,如SELECT * FROM OPENQUERY(TEST, 'SELECT * FROM HR.JOBS')UPDATE OPENQUERY(TEST, 'SELECT * FROM HR.JOBS') 
    SET MIN_SALARY = 25000
    WHERE JOB_TITLE = 'President'
    我想也许使用Oracle的驱动可以设置其query timeout属性,等我再试试
      

  6.   

    你是UPDATE阻塞还是在SELECT也阻塞?还有你的测试环境可以该告诉我么?
      

  7.   

    to leimin:我的测试环境:Win2k SP4 + SQL 2k SP3 + Oracle 9i建立链接服务器以后,在SQL*PLUS WORKSHEET中执行更新操作
    UPDATE HR.JOBS SET MIN_SALARY = '25000' WHERE JOB_TITLE = 'President';然后在查询分析器中执行
    UPDATE OPENQUERY(TEST, 'SELECT * FROM HR.JOBS') SET MIN_SALARY = '20000' WHERE JOB_TITLE = 'President'这时候就会发生阻塞。我希望这个查询有一个timeout设置,等待一定时间后自动断开
      

  8.   

    微软知识库中的文章,有类似问题的朋友可以参考参考HOW TO: Set Up and Troubleshoot a Linked Server to Oracle in SQL Server
    http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q280106
      

  9.   

    我明天安装一下ORACLE9I测试一下,现在没有测试环境:-)
      

  10.   

    这就是连ORACLE的缺陷,我也碰到过,只能在ORACLE端尽量避免堵塞
      

  11.   

    用ORACLE的gateway for SQL Server会好些
      

  12.   

    如果真的是这样就不好办了,Oracle是别人的数据库,我需要与其交换数据,接口程序都已经写好了,现在就是这个问题困扰着我。虽说正常情况下不会有问题,但是一旦出问题,就不是小问题了。
      

  13.   

    会不会是Oracle的设置问题?
    帮你顶