2012-07-04 93 views
2

我想从SQL Server 2008查询中执行Oracle 10g服务器上的存储过程,该过程在输出参数中返回其结果。调用使用Microsoft SQL Server的输出参数的Oracle存储过程

的Oracle存储过程的声明是这样的:

PROCEDURE MY_PROC(
    ID IN NUMBER, 
    RESULT OUT CURSOR_TYPE); 

我怎么会叫从MS SQL Server 2008中,即使用OPENQUERY或查询甲骨文的任何方法这个存储过程,并能看到结果设置存储在'RESULT'中?

+0

我想有可能是一种方式与[OPENROWSET]做到这一点(http://blogs.technet.com/b/wardpond/archive/2005/ 08/01/the-openrowset-trick-access-stored-procedure-output-in-a-select-statement.aspx)对于SQL服务器,但我不确定有没有关于oracle的问题。还有这个[博客文章]( http://blogs.objectsharp.com/blogs/matt/archive/2005/06/13/2221.aspx)可能会为您提供方向。 –

回答

0

我是从SQL SERVER到SQL SERVER的,这很好。 也许在Oracle中你需要一些chages。

这里是我在SQL Server代码

--drop PROC proc_test_test 创建PROC proc_test_test (

@a INT, @b INT输出

) 作为 开始

set @b = @ a * 6 + 4

选择*

从OPENROWSET( '类型', '服务器名'; '用户'; '通',

“声明@answer INT;

exec db.dbo.proc_test_test @a = 1,@b = @answer output;

选择@answer为” )

相关问题