oracle存儲過程的建立語法oracle
create or replace procedure 存儲過程名稱 ( --定義輸入、輸出參數-- 參數名1 in 參數類型, 參數名2 in 參數類型, 參數名3 in 參數類型, 參數名4 out 參數類型 ) as --定義變量-- --變量名 變量數據類型;如: -- numCount integer; begin --處理方法- end;
上面咱們建立一個處理加、減、乘、除計算的函數,那麼咱們也能夠建成存儲過程函數
/***** ** 建立加、減、乘、除計算的存儲過程 **輸入參數: 數字1,數字2,計算類型 **輸出參數: 數字3 *****/ create or replace procedure Proc_Test ( --定義輸入、輸出參數-- num_A in integer, num_B in integer, numType in integer, num_C out integer ) as --定義變量-- -- numCount integer; -- numStr varchar(20); begin --判斷計算類型-- if numType=1 then num_C := num_A + num_B; elsif numType=2 then num_C := num_A - num_B; elsif numType=3 then num_C := num_A * num_B; elsif numType=4 then num_C := num_A / num_B; else --其它處理 dbms_output.put_line('其它處理'); end if; end;
那麼如何調用存儲過程spa
declare num_C integer; begin --調用存儲過程--- Proc_Test(3,4,3,num_C); dbms_output.put_line('輸出結果:'|| num_C ); end;
輸出結果code
那麼,若是咱們要在存儲過程調用函數,是怎麼處理的呢?blog
create or replace procedure Proc_Test ( --定義輸入、輸出參數-- num_A in integer, num_B in integer, numType in integer, num_C out integer ) as --定義變量-- -- numStr varchar(20); begin /* --判斷計算類型-- if numType=1 then num_C := num_A + num_B; elsif numType=2 then num_C := num_A - num_B; elsif numType=3 then num_C := num_A * num_B; elsif numType=4 then num_C := num_A / num_B; else --其它處理 dbms_output.put_line('其它處理'); end if;*/ --調用函數 並賦值到num_C num_C:=fun_Test(num_A,num_B,numType); end;
只要把處理過程放到函數中,存儲過程調用函數就能夠了class
再次調用的結果變量
declare num_C integer; begin --調用存儲過程--- Proc_Test(12,2,4,num_C); dbms_output.put_line('輸出結果:'|| num_C ); end;
輸出結果數據類型