Oracle存储过程
来源:互联网 发布:antlr解析java 编辑:程序博客网 时间:2024/05/16 17:09
Oracle存储过程包含三部分:过程声明,执行过程部分,存储过程异常。
Oracle存储过程可以有无参数存储过程和带参数存储过程。
一、无参程序过程语法
create or replace procedure NoParPro
as ;
begin
;
exception //存储过程异常
;
end;
as ;
begin
;
exception //存储过程异常
;
end;
二、带参存储过程实例
create or replace procedure queryempname(sfindno emp.empno%type) as
sName emp.ename%type;
sjob emp.job%type;
begin
....
exception
....
end;
sName emp.ename%type;
sjob emp.job%type;
begin
....
exception
....
end;
三、 带参数存储过程含赋值方式
create or replace procedure runbyparmeters (isal in emp.sal%type,
sname out varchar,sjob in out varchar)
as icount number;
begin
select count(*) into icount from emp where sal>isal and job=sjob;
if icount=1 then
....
else
....
end if;
exception
when too_many_rows then
DBMS_OUTPUT.PUT_LINE('返回值多于1行');
when others then
DBMS_OUTPUT.PUT_LINE('在RUNBYPARMETERS过程中出错!');
end;
sname out varchar,sjob in out varchar)
as icount number;
begin
select count(*) into icount from emp where sal>isal and job=sjob;
if icount=1 then
....
else
....
end if;
exception
when too_many_rows then
DBMS_OUTPUT.PUT_LINE('返回值多于1行');
when others then
DBMS_OUTPUT.PUT_LINE('在RUNBYPARMETERS过程中出错!');
end;
四、在Oracle中对存储过程的调用
过程调用方式一
declare
realsal emp.sal%type;
realname varchar(40);
realjob varchar(40);
begin //存储过程调用开始
realsal:=1100;
realname:='';
realjob:='CLERK';
runbyparmeters(realsal,realname,realjob); --必须按顺序
DBMS_OUTPUT.PUT_LINE(REALNAME||' '||REALJOB);
END; //过程调用结束
realsal emp.sal%type;
realname varchar(40);
realjob varchar(40);
begin //存储过程调用开始
realsal:=1100;
realname:='';
realjob:='CLERK';
runbyparmeters(realsal,realname,realjob); --必须按顺序
DBMS_OUTPUT.PUT_LINE(REALNAME||' '||REALJOB);
END; //过程调用结束
过程调用方式二
declare
realsal emp.sal%type;
realname varchar(40);
realjob varchar(40);
begin //过程调用开始
realsal:=1100;
realname:='';
realjob:='CLERK';
runbyparmeters(sname=>realname,isal=>realsal,sjob=>realjob); --指定值对应变量顺序可变
DBMS_OUTPUT.PUT_LINE(REALNAME||' '||REALJOB);
END; //过程调用结束
realsal emp.sal%type;
realname varchar(40);
realjob varchar(40);
begin //过程调用开始
realsal:=1100;
realname:='';
realjob:='CLERK';
runbyparmeters(sname=>realname,isal=>realsal,sjob=>realjob); --指定值对应变量顺序可变
DBMS_OUTPUT.PUT_LINE(REALNAME||' '||REALJOB);
END; //过程调用结束
- Oracle:存储过程,存储函数
- Oracle-存储过程 存储函数
- Oracle存储过程、存储函数
- oracle 存储函数,存储过程
- Oracle存储过程
- 调试oracle存储过程。
- ORACLE 存储过程实战
- Oracle 存储过程
- oracle存储过程使用
- Oracle 创建存储过程
- 调试oracle存储过程
- oracle java存储过程
- 创建Oracle存储过程
- 加密oracle存储过程
- oracle存储过程分页
- oracle存储过程笔记
- ORACLE存储过程--注意事项
- oracle procedure 存储过程
- silverlight 边框虚线
- BI-OLAP(商业智能)
- 05-VTK在图像处理中的应用(3)
- java中:包、类、字段、方法命名规则
- linux串口编程
- Oracle存储过程
- apt-get install 报 E: Sub-process /usr/bin/dpkg returned an error code (1) 错
- 13-01-29-->14
- 重新挂载/usr
- 使用 C++ 处理 JSON 数据交换格式
- PHP开发学习-Apache+PHP+MySQL环境搭建
- javacore-heapdump分析示例
- 空间SQL配置---Oracle10G
- 空间SQL配置---Oracle11G