天天看點

oracle 存儲過程和函數學習筆記

1、建立過程的文法:     

oracle 存儲過程和函數學習筆記
oracle 存儲過程和函數學習筆記

Code

create [or replace] procedure procedure_name

  [(argument[{in|out|in out}] type,

oracle 存儲過程和函數學習筆記

   argument[{in|out|in out}] type)] {is|as}

  procedure_body

簡單的例子:

oracle 存儲過程和函數學習筆記
oracle 存儲過程和函數學習筆記

  create procedure RaiseError(

   /*if p_Raise is true,then an unhandled error is raised.

   if p_Raise is false,the procedure completes successfully.*/

      p_Raise in boolean:=true,

      p_ParameterA  out number) as

  begin 

      p_Parameter1:='abcdwxc';

      p_Parameter2:=143;

  end ParameterLength;

删除過程文法:

drop procedure procedure_name;

2、建立函數的文法:

oracle 存儲過程和函數學習筆記
oracle 存儲過程和函數學習筆記

create [or replace] function function_name 

   [(argument[{in|out|in out}] type,

oracle 存儲過程和函數學習筆記

     argument[{in|out|in out}] type)] 

  return return_type {is|as}

  function_body

簡單函數的例子:

 create function ClassInfo(

      p_Department classes.department%type,

      p_Course     classes.course%type)

      return varchar is 

      v_CurrentStudents number;

      v_MaxStudents     number;

      v_PercentFull     number;

      begin

          select current_students,max_students 

          into v_CurrentStudents,v_MaxStudents

          from classes

          where department=P_Department and course=P_Course;

          --計算百分比

          v_PercentFull:=v_CurrentStudents/V_MaxStudent*100;

          if v_PercentFull=100 then

          return 'Full';

          elseif v_PercentFull>80 then 

          return 'Some Room';

          elseif v_PercentFull>60 then 

          return 'More Room';

          elseif v_PercentFull>0 then 

          return 'Lots of Room';

          else

          return 'Empty';

          end if 

      end ClassInfo;

删除函數文法:

drop function function_name;