-
Oracle存儲(chǔ)過(guò)程包含三部分:過(guò)程聲明,執(zhí)行過(guò)程部分,存儲(chǔ)過(guò)程異常。
1.Oracle存儲(chǔ)過(guò)程可以有無(wú)參數(shù)存儲(chǔ)過(guò)程和帶參數(shù)存儲(chǔ)過(guò)程。
2.一、無(wú)參程序過(guò)程語(yǔ)法
3.1 create or replace procedure NoParPro 4.2 as ; 5.3 begin 6.4 ;
7.5 exception //存儲(chǔ)過(guò)程異常
8.6 ;
9.7 end; 10.8
11.
12. 二、帶參存儲(chǔ)過(guò)程實(shí)例
13. 1 create or replace procedure queryempname(sfindno emp.empno%type) as 14. 2 sName emp.ename%type;
15. 3 sjob emp.job%type;
16. 4 begin 17. 5 ....
18. 7 exception
19. ....
20.14 end; 21.15
22.
23. 三、 帶參數(shù)存儲(chǔ)過(guò)程含賦值方式
24. 1 create or replace procedure runbyparmeters (isal in emp.sal%type, 25. sname out varchar,sjob in out varchar) 26. 2 as icount number; 27. 3 begin 28. 4 select count(*) into icount from emp where sal>isal and job=sjob; 29. 5 if icount=1 then 30. 6 ....
31. 9 else 32.10 ....
33.12 end if; 34.13 exception
35.14 when too_many_rows then 36.15 DBMS_OUTPUT.PUT_LINE('返回值多于1行'); 37.16 when others then 38.17 DBMS_OUTPUT.PUT_LINE('在RUNBYPARMETERS過(guò)程中出錯(cuò)!'); 39.18 end; 40.19
41.
42. 四、在Oracle中對(duì)存儲(chǔ)過(guò)程的調(diào)用
43. 過(guò)程調(diào)用方式一
44. 1 declare 45. 2 realsal emp.sal%type;
46. 3 realname varchar(40); 47. 4 realjob varchar(40); 48. 5 begin //存儲(chǔ)過(guò)程調(diào)用開始 49. 6 realsal:=1100;
50. 7 realname:=''; 51. 8 realjob:='CLERK'; 52. 9 runbyparmeters(realsal,realname,realjob); --必須按順序
53.10 DBMS_OUTPUT.PUT_LINE(REALNAME||' '||REALJOB); 54.11 END; //過(guò)程調(diào)用結(jié)束 55.12
56.
57. 過(guò)程調(diào)用方式二
58. 1 declare 59. 2 realsal emp.sal%type;
60. 3 realname varchar(40); 61. 4 realjob varchar(40); 62. 5 begin //過(guò)程調(diào)用開始 63. 6 realsal:=1100;
64. 7 realname:=''; 65. 8 realjob:='CLERK'; 66. 9 runbyparmeters(sname=>realname,isal=>realsal,sjob=>realjob); --指定值對(duì)應(yīng)變量順序可變
67.10 DBMS_OUTPUT.PUT_LINE(REALNAME||' '||REALJOB); 68.11 END; //過(guò)程調(diào)用結(jié)束 69.12
本文出自:億恩科技【1tcdy.com】
服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|