Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 使用open query函数从sql server执行oracle存储过程_Sql Server 2005_Oracle_Tsql - Fatal编程技术网

Sql server 2005 使用open query函数从sql server执行oracle存储过程

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。更多信息: 您使用的解决

您能否确认是否已使用“打开查询”功能从sql server成功执行oracle存储过程。如果是,如何进行?因为我在使用OPENQUERY函数执行带有参数的存储过程时遇到问题。

我不是db guy,但是在Oracle进程上添加一个输出参数怎么样。然后在进程中填充它并将其返回到SQL server。这里有一个例子

嗯,,
~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;')中选择*。