Oracle 存储过程简单示例
四月 30, 2008 by czl
在Oracle中, 我们可以创建属于我们自己的存储过程。存储过程的语法格式如下:
CREATE [OR REPLACE] PROCEDURE procedure_name
[ (parameter [,parameter]) ]
IS
[declaration_section]
BEGIN
executable_section
[EXCEPTION
exception_section]
END [procedure_name];
当你创建一个存储过程或者函数,你可以定义参数,也可以不定义参数。Oracle的存储过程中有三种类型的参数:
1. IN 类型- 可以被过程或者函数引用的参数,此类参数的值不能在过程中或者函数中改写。
2. OUT 类型- 不可以被过程或者函数引用的参数, 此类参数的值不能在过程中或者函数中改写.
3. IN OUT 类型- 可以被过程或者函数引用的参数并且参数的值可以在过程或者函数中被改写.
下面是一个简单的存储过程的示例:
CREATE OR REPLACE Procedure UpdateCourse
( name_in IN varchar2 )
IS
cnumber number;
cursor c1 is
select course_number
from courses_tbl
where course_name = name_in;
BEGIN
open c1;
fetch c1 into cnumber;
if c1%notfound then
cnumber := 9999;
end if;
insert into student_courses
( course_name,
course_number)
values ( name_in,
cnumber );
commit;
close c1;
EXCEPTION
WHEN OTHERS THEN
raise_application_error(-20001,'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM);
END;
这个存储过程名称是 UpdateCourse,它有一个参数 name_in. 这个过程将根据课程名称查找课程号,如果没有找到匹配的课程号, 它默认课程号是99999, 并随后插入一条新记录到student_courses表中.
发表一条评论: