1. 程式人生 > >ORACLE 建立儲存過程,儲存函式

ORACLE 建立儲存過程,儲存函式

基本概念

儲存過程和儲存函式相當於一個東西。

儲存過程在Oracle裡叫procedure。

儲存過程沒有返回值。

儲存函式在Oracle裡叫function。

儲存函式有返回值。

基本語法

create or replace procedure 名字

--create or replace 意思是建立或者替換

as

--可以在此定義引數

begin

    語句;

end;

例:

create or replace procedure sayhello
as
--說明 相當與declare
begin

     dbms_output.put_line('Hello World');

end;

基本呼叫

begin
  -- Call the procedure
  sayhello;
  sayhello;
  sayhello;
end;

帶引數的儲存過程

--給指定人員漲工資

create or replace procedure upmoney(testname in test_procedure.name%type) 
as
begin
  update test_procedure t 
     set t.money = t.money + 1000 
   where t.name = testname; 
      
end upmoney;

特別的地方,引數要指明是輸入引數還是輸出引數。

儲存函式

--查詢某個員工的年收入
create or replace function Fupmoney(tname in varchar2)
return number
as
  --定義月薪引數
  tmoney test_procedure.money%type;
begin
  --得到月薪
  select t.money
    into tmoney
    from test_procedure t 
   where t.name = tname;
  
  dbms_output.put_line(tmoney*12);
  
  return(tmoney*12);
  
end;

建立一個多輸出引數的儲存函式例子

create or replace procedure manyparm(tname in varchar2,
                                     tjob out varchar2,
                                     tmoney out number,
                                     tdept out varchar2) 
is
begin
  
    select t.job,t.money,t.dept 
      into tjob,tmoney,tdept 
      from test_procedure t 
      where t.name = tname;
  
end manyparm;