oracle中如何定义一个使用out参数的存储过程

这是一个带out参数的存储过程,但不明白numsOUTINTEGER的用处CREATEORREPLACEPROCEDUREtotal_students(numsOUTIN... 这是一个带out参数的存储过程,但不明白nums OUT INTEGER的用处
CREATE OR REPLACE PROCEDURE total_students(nums OUT INTEGER)
AS
BEGIN
SELECT COUNT(*) INTO nums FROM students;
END;
展开
 我来答
九转玄身
推荐于2017-11-22 · TA获得超过1195个赞
知道小有建树答主
回答量:357
采纳率:0%
帮助的人:0
展开全部
1、你的过程定义的参数是out也就是出参,要往外传值的,执行完这个过程得到的结果放在出参里传给调用它的地方
SELECT COUNT(*) INTO nums FROM students
得到一个数值 放在 nums里面传出去了

2、存储过程的固定格式:
CREATE OR REPLACE PROCEDURE 过程名(参数名 参数类型(in/out) 数据类型(varchar/number/char...))
AS
声明一些变量...

BEGIN
做一些业务处理(增,删,查,改...)

END;

3、参数的写法:
参数名 in或者out或者inout 数据类型
in的就是需要往里传数据的参数,out的就是过程处理完往外传的数据,inout的就是既往里传也往外传的参数
4、在java里调用过程的时候:
{call 过程名(入参的值,出参的变量,...)}
zhoudha
生活家

推荐于2016-05-24 · 知世故而不世故地生活
知道大有可为答主
回答量:2.4万
采纳率:91%
帮助的人:112万
展开全部
在所定义的存储过程中,参数的名字后面加上out即可。
例如:
create or replace procedure pr1(id in varchar2, name out varchar2)
is
begin
select table_name into name from table1 where table_id = id;
end pr1;

其中存储过程pr1有两个参数,id是输入参数,只能向该存储过程传入值,用in修饰。name是输出参数,只能返回该存储过程的赋与name的结果,用out修饰。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
問猪笑了冇
2009-11-06 · TA获得超过220个赞
知道答主
回答量:108
采纳率:0%
帮助的人:87.3万
展开全部
out的意思就是将执行完后 该变量的值赋给传入时的这个参数.
如你所说
若在外处调用你的过程
declare aaa...
....
total_students(aaa)
.....
如果SELECT COUNT(*) INTO nums FROM students;执行结果为10
则aaa的值就是10.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lmonkey
2021-01-26 · 教育领域创作者
个人认证用户
lmonkey
采纳数:69 获赞数:176

向TA提问 私信TA
展开全部

MySQL教程4 MySQL8运算符、函数、存储过程及新增数据类型 17.之创建带有IN和OUT参数的存储过程 学习猿地

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式