oracle中的procedure编写和使用详解
1.创建/修改
CREATE[ORREPLACE]PROCEDUREprocedure_name
[(parameter_list)]
{IS|AS}
[local_declarations]
BEGIN
executable_statements
[EXCEPTIONexception_handlers]
END[procedure_name];
a.parameter_list格式如下
parameter_name1[in|out|inout]type,parameter_name1[in|out]type[,........]
in是输入参数,可以有默认值,默认值例子emp_noinnumber:=7900
out是输出参数,
b.AS/IS的区别
在视图(VIEW)中只能用AS不能用IS
在游标(CURSOR)中只能用IS不能用AS
c.local_declarations格式如下:
loacal_var1type(limit);
如empnamevarchar2(20);
d.输出变量赋值
oracle变量赋值有两种一种是直接:=还有就是selectinto
游标参数
outcurOUTBASIC_CURSOR: OPENoutcurFORSELECTcol1,col2FROMtablename
e.示例
createorreplaceprocedureputNum(P_Dateindate,P_yearoutvarchar2)is
v_numnumber(8):=1;
v_daysnumber;
v_datedate;
begin
dbms_output.put_line('intputvalue:'||P_year);
v_num:=1;
v_days:=1;
v_days:=to_number(to_char(P_Date,'dd'));--to_char(sysdate-20,'dd')
foriin1..v_daysLoop
v_date:=to_date('2011/11/'||to_char(i),'yyyy/MM/dd');
--dbms_output.put_line(v_date);
endloop;
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('HelloWorld!');
b.打开DBMS_OUTPUT
showserveroutput; setserveroutputon;
c.测试我们的procedure
execprocedure_name
3.显示错误showerrors
如果在exec存储过程中提示出现错误,时刻使用"showerrors"命令查看哪里出错了
4.查看
a.所有procedure
selectobject_name,object_type,statusfromuser_objectswhereOBJECT_TYPE='PROCEDURE';
b.指定procedure
SELECTtextFROMuser_sourceWHERENAME='procedure_name';
5.删除
DROPPROCEDUREprocedure_name;
以上所述是小编给大家介绍的oracle中的procedure编写和使用详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!