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

来源:百度知道 编辑:UC知道 时间:2024/06/06 19:18:20
这是一个带out参数的存储过程,但不明白nums OUT INTEGER的用处
CREATE OR REPLACE PROCEDURE total_students(nums OUT INTEGER)
AS
BEGIN
SELECT COUNT(*) INTO nums FROM students;
END;

在所定义的存储过程中,参数的名字后面加上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修饰。

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 过程名(入参的值,出参的变量,...)}

out的意思就是将执行完后 该变量的值赋给传入时的这个参数.
如你所说
若在外处调用你的过程
declare aaa...
....
total_students(aaa)
.....
如果SELECT COUNT(*) INTO nums FROM students;执行结果为10
则aaa的值就是10.