程式先锋Java技术维客

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表中.



发表一条评论:
  • HTML语法: 启用

Search

 

« 九月 2010
星期日星期一星期二星期三星期四星期五星期六
   
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
  
       
今天

Feeds

Navigation