是否可以使用“返回"在存储过程中? [英] Is it possible to use "return" in stored procedure?
问题描述
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;
- 是否可以在上述存储过程中使用return?
- 如果我们可以使用return,如何在
Executesql("begin Pname(----)END")
方法中获取该返回值
- Is it possible to use return in stored procedure like above?
- 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参数,即outstaticip
和outcount
,然后从调用位置访问它们即可.我的意思是:调用存储过程时,也将传递这两个变量.在存储过程调用之后,将使用返回值填充变量.
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屋!