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
- 2 sName emp.ename%type;
- 3 sjob 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)
- 2 as icount number;
- 3 begin
- 4 select count(*) into icount from emp where sal>isal and job=sjob;
- 5 if icount=1 then
- 6 ....
- 9 else
- 10 ....
- 12 end if;
- 13 exception
- 14 when too_many_rows then
- 15 DBMS_OUTPUT.PUT_LINE("返回值多于1行");
- 16 when others then
- 17 DBMS_OUTPUT.PUT_LINE("在RUNBYPARMETERS过程中出错!");
- 18 end;
- 19
-
- 四、在Oracle中对存储过程的调用
- 过程调用方式一
- 1 declare
- 2 realsal emp.sal%type;
- 3 realname varchar(40);
- 4 realjob varchar(40);
- 5 begin //存储过程调用开始
- 6 realsal:=1100;
- 7 realname:="";
- 8 realjob:="CLERK";
- 9 runbyparmeters(realsal,realname,realjob); --必须按顺序
- 10 DBMS_OUTPUT.PUT_LINE(REALNAME||" "||REALJOB);
- 11 END; //过程调用结束
- 12
-
- 过程调用方式二
- 1 declare
- 2 realsal emp.sal%type;
- 3 realname varchar(40);
- 4 realjob varchar(40);
- 5 begin //过程调用开始
- 6 realsal:=1100;
- 7 realname:="";
- 8 realjob:="CLERK";
- 9 runbyparmeters(sname=>realname,isal=>realsal,sjob=>realjob); --指定值对应变量顺序可变
- 10 DBMS_OUTPUT.PUT_LINE(REALNAME||" "||REALJOB);
- 11 END; //过程调用结束
- 12
Oracle 11g 环境变量设置Oracle 中 rollup、cube、grouping 使用详解相关资讯 Oracle教程
- Oracle中纯数字的varchar2类型和 (07/29/2015 07:20:43)
- Oracle教程:Oracle中查看DBLink密 (07/29/2015 07:16:55)
- [Oracle] SQL*Loader 详细使用教程 (08/11/2013 21:30:36)
| - Oracle教程:Oracle中kill死锁进程 (07/29/2015 07:18:28)
- Oracle教程:ORA-25153 临时表空间 (07/29/2015 07:13:37)
- Oracle教程之管理安全和资源 (04/08/2013 11:39:32)
|
本文评论 查看全部评论 (0)