如题:高手们帮忙:1、机器名是pcname,Oracle数据库名是abc,登陆用户和密码都是ods,oracle里的存储过程是sp麻烦高手们帮忙写个SQL调用oracle存储过程sp的脚本,并且返回sp的两个结果参数谢谢!!!!!

解决方案 »

  1.   

    试试链接服务器
    -- 建立链接服务器
    EXEC sp_addlinkedserver
    @server = '<LinkedServerName>',
    @srvproduct = 'Oracle',
    @provider = 'MSDAORA',
    @datasrc = '<ServerName>'

    -- 调用
    EXEC <LinkedServerName>.库名.架构名.存储过程名
    @参数 = @输出变量 OUTPUT
      

  2.   


    不用写密码登陆那些?
    EXEC sp_addlinkedserver
        @server = 'pcname',
        @srvproduct = 'Oracle',
        @provider = 'MSDAORA',
        @datasrc = 'abc'
        
    -- 调用EXEC pcname.abc.架构名.sp
        @参数 = @输出变量 OUTPUT?是这样么?我不会oracle,问的有点幼稚了,帮忙帮忙~架构名一定要加么,不要的话要怎么改
      

  3.   

    1. SQLSERVER服务器上面安装oracle客户端,配置服务命名(假设为 test) ,这个和你的数据库名称无关,可以随便起
    2. 在SQLSERVER服务器上面建立链接服务器,脚本如下 
    -- Adding linked server:
    exec sp_addlinkedserver @server = 'test' , --这个是你链接服务器的名字,随便起
    @srvproduct = 'ORACLE',
    @provider = 'MSDAORA',
    @datasrc = 'test'   --这个要和你的第一步配的服务名相同-- Adding linked server login:
    exec sp_addlinkedsrvlogin @useself='false ', @rmtsrvname = 'test', --这个要和你的第一步配的服务名相同
    @rmtuser = 'ods',  --数据库用户
    @rmtpassword = 'ods' --密码然后就可以用EXEC <LinkedServerName>.库名.架构名.存储过程名来调用