oracle存储过程语法(转)

1.存储过程 包含三部分: 声明,执行部分,异常。
2.可以有无参数程序和带参数存储过程。
3.无参程序语法
4.1 create or replace procedure NoParPro
5.2 as ;
6.3 begin
7.4 ;
8.5 exception
9.6 ;
10.7 end;
11.8
12.
13. 带参存储过程实例
14. 1 create or replace procedure queryempname(sfindno emp.empno%type) as
15. 2 sName emp.ename%type;
16. 3 sjob emp.job%type;
17. 4 begin
18. 5 ....
19. 7 exception
20. ....
21.14 end;
22.15
23.
24. 带参数存储过程含赋值方式
25. 1 create or replace procedure runbyparmeters (isal in emp.sal%type,
26. sname out varchar,sjob in out varchar)
27. 2 as icount number;
28. 3 begin
29. 4 select count(*) into icount from emp where sal>isal and job=sjob;
30. 5 if icount=1 then
31. 6 ....
32. 9 else
33.10 ....
34.12 end if;
35.13 exception
36.14 when too_many_rows then
37.15 DBMS_OUTPUT.PUT_LINE('返回值多于1行');
38.16 when others then
39.17 DBMS_OUTPUT.PUT_LINE('在RUNBYPARMETERS过程中出错!');
40.18 end;
41.19
42.
43. 过程调用
44. 方式一
45. 1 declare
46. 2 realsal emp.sal%type;
47. 3 realname varchar(40);
48. 4 realjob varchar(40);
49. 5 begin
50. 6 realsal:=1100;
51. 7 realname:='';
52. 8 realjob:='CLERK';
53. 9 runbyparmeters(realsal,realname,realjob); --必须按顺序
54.10 DBMS_OUTPUT.PUT_LINE(REALNAME||' '||REALJOB);
55.11 END;
56.12
57.
58. 方式二
59. 1 declare
60. 2 realsal emp.sal%type;
61. 3 realname varchar(40);
62. 4 realjob varchar(40);
63. 5 begin
64. 6 realsal:=1100;
65. 7 realname:='';
66. 8 realjob:='CLERK';
67. 9 runbyparmeters(sname=>realname,isal=>realsal,sjob=>realjob); --指定值对应变量顺序可变
68.10 DBMS_OUTPUT.PUT_LINE(REALNAME||' '||REALJOB);
69.11 END;

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Icandoeverything/archive/2009/03/19/4005524.aspx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值