使用链接服务器,执行带返回参数的oracle存储过程,如何获取参数返回值?

mypiip 2010-09-16 07:55:34
在oracle中建一存储过程,如下
procedure P_TEST(
v_hm in varchar2
,n_result out number
)
as
begin
n_result:=0;

end P_TEST;

我如何通过sqlserver2000中创建的链接服务器OracleDB,来取得n_result的返回值?
虽然通过select * from OpenQuery(OracleDB,'查询语句')可以获取表记录或者执行没有返回值参数的存储过程,但现在我需要从这个存储过程获取这个返回值,该如何处理?
...全文
386 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
道非 2011-06-29
  • 打赏
  • 举报
回复
你是用ibatis还是hibernate操作数据库的?我今天发现如果是ibatis的话,好像不能接收存储过程中传递过来的NUMBER类型,它好像只能接收varchar类型的返回值,这个问题我要好好搞懂下啊
ws_hgo 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 mypiip 的回复:]

试验清楚了,那个@res还需要赋值初始化一下,就可以了,多谢xman_78tom
[/Quote]
解决了吧!
mypiip 2010-09-28
  • 打赏
  • 举报
回复
试验清楚了,那个@res还需要赋值初始化一下,就可以了,多谢xman_78tom
mypiip 2010-09-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xman_78tom 的回复:]

-- 如果是 SQL Server 2005,可以
declare @hm varchar(...), @res numeric;
set @hm='...';
execute('begin P_TEST(?, ?); end;', @hm, @res output) at OracleDB;

[/Quote]
按照您说,我在sqlserver2005中执行,报错
消息 7215,级别 17,状态 1,第 4 行
无法在远程服务器 'OracleDB' 上执行语句。
ws_hgo 2010-09-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xman_78tom 的回复:]

SQL code

-- 如果是 SQL Server 2000,只能将存储过程改写为函数,再用 openquery 调用。
create function P_TEST (v_hm varchar2)
return number
is
n_result number;
begin
n_result:=0;

return n_result;
end;
/
-- 调用
select * ……
[/Quote]
NB
「已注销」 2010-09-27
  • 打赏
  • 举报
回复
[Quote=引用楼主 mypiip 的回复:]
在oracle中建一存储过程,如下
procedure P_TEST(
v_hm in varchar2
,n_result out number
)
as
begin
n_result:=0;

end P_TEST;

我如何通过sqlserver2000中创建的链接服务器OracleDB,来取得n_result的返回值?
虽然通过……
[/Quote]
也可以通过临时表来处理。
去临时表中select就可以了
mypiip 2010-09-27
  • 打赏
  • 举报
回复
不好意思,出差,回复晚了,俺马上试验一下,结贴!
xman_78tom 2010-09-16
  • 打赏
  • 举报
回复

-- 如果是 SQL Server 2000,只能将存储过程改写为函数,再用 openquery 调用。
create function P_TEST (v_hm varchar2)
return number
is
n_result number;
begin
n_result:=0;

return n_result;
end;
/
-- 调用
select * from openquery(OracleDB, 'select P_TEST(...) from dual;');

-- 如果是 SQL Server 2005,可以
declare @hm varchar(...), @res numeric;
set @hm='...';
execute('begin P_TEST(?, ?); end;', @hm, @res output) at OracleDB;

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧