源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

oracle中的procedure编写和使用详解

  • 时间:2022-06-27 04:13 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:oracle中的procedure编写和使用详解
[b]1.创建/修改[/b]
CREATE [OR REPLACE] PROCEDURE procedure_name
[(parameter_list)]
{IS|AS}
[local_declarations]
BEGIN
executable_statements
[EXCEPTION exception_handlers]
END [procedure_name];
[b]a.parameter_list格式如下[/b]
 parameter_name1 [in | out | in out] type, parameter_name1 [in | out] type [,........]
in 是输入参数, 可以有默认值,默认值例子 emp_no in number:=7900 out 是输出参数, [b]b.AS/IS的区别[/b] 在视图(VIEW)中只能用AS不能用IS 在游标(CURSOR)中只能用IS不能用AS [b]c.local_declarations格式如下:[/b]     loacal_var1 type(limit); 如empname varchar2(20); [b]d.输出变量赋值[/b] oracle 变量赋值有两种一种是直接 := 还有就是 select into 游标参数
outcur OUT BASIC_CURSOR:
 OPEN outcur FOR SELECT col1,col2 FROM tablename
[b]e.示例[/b]
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;
[b]2.调用[/b]
[EXECUTE]|[CALL] procedure_name[(parameter,…n)]
在代码块 declare 的 begin/end 中不需要 [EXECUTE]|[CALL], 直接 [code]procedure_name[(parameter,…n)][/code] 其他外部程序需要 [EXECUTE]|[CALL] 在PL/SQL中调用这个存储过程,采用了如下的代码:
begin
Proc_Insert('hello6',25,'2005-12-24');
commit;
end;
[b]3.显示调试信息[/b] a.存储过程中在必要的位置添加
DBMS_OUTPUT.put_line ('Hello World!');
b.打开DBMS_OUTPUT
show serveroutput;
set serveroutput on;
c.测试我们的 procedure
[u]复制代码[/u] 代码如下:
exec procedure_name
[b]3.显示错误 show errors[/b] 如果在 exec 存储过程中提示出现错误,时刻使用"show errors"命令查看哪里出错了 [b]4.查看[/b] a.所有 procedure
select object_name,object_type,status from user_objects where OBJECT_TYPE='PROCEDURE';
b.指定 procedure
SELECT text FROM user_source WHERE NAME = 'procedure_name';
[b]5.删除[/b]
DROP PROCEDURE procedure_name;
以上所述是小编给大家介绍的oracle中的procedure编写和使用详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程素材网网站的支持!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部