Sql server 2005 使用open query函数从sql server执行oracle存储过程
您能否确认是否已使用“打开查询”功能从sql server成功执行oracle存储过程。如果是,如何进行?因为我在使用OPENQUERY函数执行带有参数的存储过程时遇到问题。我不是db guy,但是在Oracle进程上添加一个输出参数怎么样。然后在进程中填充它并将其返回到SQL server。这里有一个例子 嗯,,Sql server 2005 使用open query函数从sql server执行oracle存储过程,sql-server-2005,oracle,tsql,Sql Server 2005,Oracle,Tsql,您能否确认是否已使用“打开查询”功能从sql server成功执行oracle存储过程。如果是,如何进行?因为我在使用OPENQUERY函数执行带有参数的存储过程时遇到问题。我不是db guy,但是在Oracle进程上添加一个输出参数怎么样。然后在进程中填充它并将其返回到SQL server。这里有一个例子 嗯,, ~ck终于找到了一些解决方案–问题的关键(对我们来说)是默认情况下链接服务器禁用RPC。Rpc、Rpc Out和Use远程排序规则的参数需要设置为true。更多信息: 您使用的解决
~ck终于找到了一些解决方案–问题的关键(对我们来说)是默认情况下链接服务器禁用RPC。Rpc、Rpc Out和Use远程排序规则的参数需要设置为true。更多信息: 您使用的解决方案将取决于程序输出要求。第一个示例返回一个输出值。第二个示例不返回任何输出值(在后续查询中收集数据) 例1 过程T2T_collect_all有两个输入参数(开始日期和结束日期)和一个输出参数(行计数) 声明@l_i_参数1 varchar(10) 声明@l_i_参数2 varchar(10) 声明@l_i_参数3 varchar(10) 声明@l_i_参数4 varchar(10) 声明@l_o_参数1整数 设置@l_i_参数1='2009/10/01' 设置@l_i_参数2='yyyy/mm/dd' 设置@l_i_参数3='2009/12/31' 设置@l_i_参数4='yyyy/mm/dd' 设置@l_o_参数1=0 执行('begin T2T_collect_all(截止日期(?),截止日期(?),结束;'
@l_i_parameter1,
@l_i_parameter2,
@l_i_parameter3,
@l_i_parameter4,
@l_o_parameter1 OUTPUT
)在ORA_DB
更多信息:
例2a
程序T2T_collect_allx只有两个输入参数(开始日期和结束日期)
执行('begin T2T_collect_allx(SYSDATE-40,SYSDATE);end;')或数据库
示例2b
从OPENQUERY(ORA_DB,'begin T2T_collect_allx(SYSDATE-40,SYSDATE);end;')中选择*。