各位大哥,怎样在SQL SERVER 2000中调用Oracle存储过程,急,谢谢。

解决方案 »

  1.   


    C. 使用用于 Oracle 的 Microsoft OLE DB 提供程序
    此示例创建一台名为 LONDON Mktg 的链接服务器,该服务器使用用于 Oracle 的 Microsoft OLE DB 提供程序,并且假设此 Oracle 数据库的 SQL*Net 别名为 MyServer。USE master
    GO
    -- To use named parameters:
    EXEC sp_addlinkedserver
       @server = 'LONDON Mktg',
       @srvproduct = 'Oracle',
       @provider = 'MSDAORA',
       @datasrc = 'MyServer'
    GO
    -- OR to use no named parameters:
    USE master
    GO
    EXEC sp_addlinkedserver 
       'LONDON Mktg', 
       'Oracle', 
       'MSDAORA',
       'MyServer'
    GO
    exec('delete from openquery(oracle_link,''select *  from tt where t=''+@v+')')
      

  2.   

    在SQL SERVER 2000中调用Oracle存储过程,以前处理过,速度极慢,不如直接由前台直接连接Oracle执行。
      

  3.   

    谢谢各位回复,我试过先建链接服务器连Oracle,然后用{call oracle_link.app.package.procedure},提示调用失败。大家还有没有更好的办法啊。wangtiecheng能说说你当时是怎么做的吗?我的项目只能在SQL SERVER 2000中调用。zlp321002:你的方法是获取Oracle中的数据,不是调用Oracle的存储过程,不过还是要谢谢你。
      

  4.   

    不一定要调用存储过程,大存储过程本身的等待时间就长,用任务激活存储过程就闪人,异步处理。我想的也是链接服务器,JAVA有JDBC,MySQL有MyODBC,Oracle肯定也有,只是没用过不知道。
      

  5.   

    Mark