1. in 参数
用于接收参数,在子程序内部,不能进行修改。默认的参数模式:in
案例:
-- 声明存储过程create or replace procedure pro_in(p_num in number)isbegindbms_output.put_line(p_num);-- p_num:=10;-- 添加此行编译报错,in 参数不能赋值end pro_in;
-- 调用declaretest number:=1;beginpro_in(test);dbms_output.put_line(test);end;
结果: 输出 两个 1
2.out 参数
输出模式的参数,用于输出值,会忽略传入的值。在子程序内部可以对其进行修改。
调用时 参数需要使用变量.
案例:
-- 声明存储过程create or replace procedure pro_out(p_num out number)isbegindbms_output.put_line(p_num);p_num:=10;end pro_out;
-- 调用declaretest number:=1;beginpro_out(test);dbms_output.put_line(test);end;
结果: 忽略输入的值,输出一个 空,和一个 10
3. in out 参数
能接收传入的实参值;在子程序内部可以修改,可以输出
调用时 参数需要使用变量.
案例:
-- 声明存储过程create or replace procedure pro_in_out(p_num in out number)isbegindbms_output.put_line(p_num);p_num:=10;end pro_in_out;
-- 调用declaretest number:=1;beginpro_in_out(test);dbms_output.put_line(test);end;
结果: 输出一个 1 和 一个 10