Q5:oracle数据库怎么创建存储过程?
Oracle存储过程包含三部分:过程声明,执行过程部分,存储过程异常。
Oracle存储过程可以有无参数存储过程和带参数存储过程。
一、无参程序过程语法
1 create or replace procedure NoParPro
2 as;
3 begin
4 ;
5 exception//存储过程异常
6;
7 end;
8
二、带参存储过程实例
1 create or replace procedure queryempname(sfindno emp.empno%type) as
2sName emp.ename%type;
3sjob emp.job%type;
4 begin
5....
7 exception
....
14 end;
15
三、 带参数存储过程含赋值方式
1 create or replace procedure runbyparmeters(isal in emp.sal%type,
sname out varchar,sjob in out varchar)
2as icount number;
3begin
4select count(*) into icount from emp where sal>isal and job=sjob;
5if icount=1 then
6....
9else
10....
12end if;
13exception
14when too_many_rows then
15DBMS_OUTPUT.PUT_LINE(返回值多于1行);
16when others then
17DBMS_OUTPUT.PUT_LINE(在RUNBYPARMETERS过程中出错!);
18end;
19
四、在Oracle中对存储过程的调用
过程调用方式一
1 declare
2realsal emp.sal%type;
3realname varchar(40);
4realjob varchar(40);
5begin//存储过程调用开始
6realsal:=1100;
7realname:=;
8realjob:=CLERK;
9runbyparmeters(realsal,realname,realjob);--必须按顺序
10DBMS_OUTPUT.PUT_LINE(REALNAMEREALJOB);
11END;//过程调用结束
12
过程调用方式二
1 declare
2realsal emp.sal%type;
3realname varchar(40);
4realjob varchar(40);
5 begin//过程调用开始
6realsal:=1100;
7realname:=;
8realjob:=CLERK;
9runbyparmeters(sname=>realname,isal=>realsal,sjob=>realjob);--指定值对应变量顺序可变
10DBMS_OUTPUT.PUT_LINE(REALNAMEREALJOB);
11 END;//过程调用结束
请大家多多