1、基本结构:CREATE OR REPLACE PROCEDURE 存储过程名字 (参数1 IN NUMBER,参数2 IN NUMBER) AS 变量1 INTEGER :=0; 变量2 DATE; BEGIN END 存储过程名字 2、 无参形式的procedure:--无参procedure create or replace procedure pro_no_param is begin dbms_output.put_line("the procedure without params"); end pro_no_param;--调用 --one: 无参的procedure名字后面必须要(); call pro_no_param();--two:procedure名称后面可以没有(); begin pro_no_param(); end;3、 参数类型为IN的procedure:--有参procedure 只有IN类型 create or replace procedure pro_in_param( v_1 in number, v_2 in varchar2, v_3 in date ) is begin dbms_output.put_line("v1: " || v_1 || " v2: " || v_2 || " v2: "|| (to_char(v_3, "yyyy-mm-dd"))); end pro_in_param; begin pro_in_param(1, "chy", sysdate); end;4、 参数类型为OUT的procedure:--有参procedure 只有OUT类型 create or replace procedure pro_out_param( v1 out number, v2 out char ) is begin v1 := 2; v2 := "andyChen"; end pro_out_param; --记得声明用于存放procedure的out值的变量 --语句结束了一定记得结尾的 —— ; declare v_1 number; v_2 varchar2(200); begin pro_out_param(v_1, v_2); dbms_output.put_line("v1: " || v_1 || " v2: " || v_2); end;5、 参数类型同时为IN和OUT的procedure:--同时为INOUT参数的procedure --用同一变量接收传入的值然后将这个变量当作输出的值赋给执行时声明的变量 create or replace procedure pro_in_out_param( in_out_param in out varchar2 ) is begin in_out_param := "in_out_param and " || in_out_param; end pro_in_out_param;declare in_out_param varchar2(222) := "detail param"; begin pro_in_out_param(in_out_param); dbms_output.put_line(in_out_param); end;