是否可以使用“返回"在存储过程中? [英] Is it possible to use "return" in stored procedure?

查看:86
本文介绍了是否可以使用“返回"在存储过程中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 CREATE PROCEDURE Pname(in_Tid IN VARCHAR2,in_IP IN VARCHAR2,outstaticip OUT VARCHAR2,outcount OUT NUMBER)
 AS
 BEGIN
 select STATIC_IP into outstaticip from OP_TTER_MAPPING where TERMINAL_ID = in_Tid;
 if in_IP = outstaticip then
 return 1;
 else
 select COUNT(*) into outcount from OP_TTER_MAPPING where DYNAMIC_IP_LOW <= in_IP AND   DYNAMIC_IP_HIGH >= in_IP AND TERMINAL_ID = in_Tid;
 if outcount = 1 then
 return 1;
 else
 return 0;
  end if;
 end if;
 END;

  1. 是否可以在上述存储过程中使用return?
  2. 如果我们可以使用return,如何在Executesql("begin Pname(----)END")方法中获取该返回值
  1. Is it possible to use return in stored procedure like above?
  2. If we can use return, how can i get that return value in Executesql("begin Pname(----)END") method

编辑

现在,我在这样的存储过程中编辑了返回值,我做对了吗?

Now I edited my return value in stored procedure like this, am I doing it right ?

CREATE PROCEDURE P_ValidateTIDIP(in_Tid IN VARCHAR2,in_IP IN VARCHAR2,outstaticip OUT VARCHAR2,outcount OUT NUMBER,outretvalue OUT NUMBER)
AS
BEGIN
select STATIC_IP into outstaticip from OP_TTER_MAPPING where TERMINAL_ID = in_Tid;
if in_IP = outstaticip then
    outretvalue:=1;
else 
    select COUNT(*) into outcount from OP_TTER_MAPPING where DYNAMIC_IP_LOW <= in_IP AND DYNAMIC_IP_HIGH >= in_IP AND TERMINAL_ID = in_Tid;
    if outcount = 1 then 
     outretvalue:=1;
    else
     outretvalue:=0;
   end if;
end if;
END;

推荐答案

在存储过程中,使用OUT参数 ONLY 返回值.正如您在示例中定义了两个变量一样:

In Stored procedure, you return the values using OUT parameter ONLY. As you have defined two variables in your example:

   outstaticip OUT VARCHAR2, outcount OUT NUMBER

只需将返回值分配给out参数,即outstaticipoutcount,然后从调用位置访问它们即可.我的意思是:调用存储过程时,也将传递这两个变量.在存储过程调用之后,将使用返回值填充变量.

Just assign the return values to the out parameters i.e. outstaticip and outcount and access them back from calling location. What I mean here is: when you call the stored procedure, you will be passing those two variables as well. After the stored procedure call, the variables will be populated with return values.

如果要从PL/SQL调用中获得RETURN value作为返回,请使用FUNCTION. 请注意,以防万一,您只能返回一个变量作为返回变量.

If you want to have RETURN value as return from the PL/SQL call, then use FUNCTION. Please note that in case, you would be able to return only one variable as return variable.

这篇关于是否可以使用“返回"在存储过程中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆