1.创建/修改
CREATE [OR REPLACE] PROCEDURE procedure_name[(parameter_list)]{IS|AS}[local_declarations]BEGIN executable_statements[EXCEPTION exception_handlers]END [procedure_name];a.parameter_list格式如下parameter_name1 [in | out | in out] type, parameter_name1 [in | out] type [,........]in 是输入参数, 可以有默认值,默认值例子 emp_no in number:=7900 out 是输出参数,b.AS/IS的区别在视图(VIEW)中只能用AS不能用IS在游标(CURSOR)中只能用IS不能用AS c.local_declarations格式如下:loacal_var1 type(limit);如empname varchar2(20);d.输出变量赋值oracle 变量赋值有两种一种是直接 := 还有就是 select into游标参数outcur OUT BASIC_CURSOR:OPEN outcur FOR SELECT col1,col2 FROM tablenamee.示例create or replace procedure putNum(P_Date in date, P_year out varchar2) is v_num number(8) := 1;v_days number;v_date date;begin dbms_output.put_line('intput value:' || P_year);v_num := 1;v_days := 1;v_days := to_number(to_char(P_Date, 'dd')); -- to_char(sysdate-20,'dd') for i in 1 .. v_days Loop v_date := to_date('2011/11/' || to_char(i), 'yyyy/MM/dd');--dbms_output.put_line(v_date);end loop;P_year := '2012';end;
2.调用
[EXECUTE]|[CALL] procedure_name[(parameter,…n)]在代码块 declare 的 begin/end 中不需要 [EXECUTE]|[CALL], 直接procedure_name[(parameter,…n)]其他外部程序需要 [EXECUTE]|[CALL]在PL/SQL中调用这个存储过程,采用了如下的代码:begin Proc_Insert('hello6',25,'2005-12-24');commit;end;
3.显示调试信息
a.存储过程中在必要的位置添加DBMS_OUTPUT.put_line ('Hello World!');b.打开DBMS_OUTPUTshow serveroutput;set serveroutput on;c.测试我们的 procedure复制代码代码如下:
exec procedure_name
3.显示错误 show errors如果在 exec 存储过程中提示出现错误,时刻使用"show errors"命令查看哪里出错了
4.查看
a.所有 procedureselect object_name,object_type,status from user_objects where OBJECT_TYPE='PROCEDURE';b.指定 procedureSELECT text FROM user_source WHERE NAME = 'procedure_name';
5.删除
DROP PROCEDURE procedure_name;以上所述是小编给大家介绍的oracle中的procedure编写和使用详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:oracle中 procedure(存储过程)和function(函数)本质区别全面解析Oracle Procedure 基本语法
