咱們來定義一個oracle的函數oracle
create or replace function 方法名(參數名1 參數類型,參數名2 參數類型,參數名3 參數類型)return 返回類型 is num_C number; --定義變量 begin --處理函數的過程-- --返回結果 return num_C; end;
如:咱們來建立一個處理加、減、乘、除的計算函數函數
/*** **** *** 說明:建立一個加法、減法、乘法、除法的計算函數 ** 參數:num_A 數字型參數A,num_B 數字型參數B,numType 計算類型 ** 返回:數字類型 ****/ create or replace function fun_Test(num_A number,num_B number,numType number)return number is num_C number; --定義變量 begin --計算類型爲1 時,表示進行加法運算--- if numType = 1 then num_C := num_A + num_B; end if; --計算類型爲2 時,表示進行減法運算--- if numType=2 then num_C := num_A - num_B; end if; --計算類型爲3 時,表示進行乘法運算--- if numType=3 then num_C := num_A * num_B; end if; --計算類型爲4 時,表示進行除法運算--- if numType=4 then num_C := num_A/num_B; end if; --輸出結果 dbms_output.put_line('輸出值:'|| num_C); return num_C; end;
上面的處理函數用的if end if,也可用if elsif else end if進行處理(注意 不是else if ,是elsif)spa
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 --其它處理 end if;
執行建立後,可在數據的函數文件下看到3d
那麼怎麼調用咱們建立的計算函數呢?code
--執行加法運算-- select fun_Test(1,3,1) 結果 from dual; --執行減法運算-- select fun_Test(8,3,2) 結果 from dual; --執行乘法運算-- select fun_Test(4,3,3) 結果 from dual; --執行除法運算-- select fun_Test(6,3,4) 結果 from dual;
也能夠一塊兒調用blog
--執行加法、減法、乘法、除反運算-- select fun_Test(1,3,1) 結果1,fun_Test(8,3,2) 結果2,fun_Test(4,3,3) 結果3,fun_Test(6,3,4) 結果4 from dual;
結果以下字符串
附錄一個生成單號函數方法io
create or replace function fun_DxcWorkNo(prefix varchar2,singStr varchar2,billType integer)return varchar2 is billNo varchar(20); nowDate varchar(20); begin --獲取單號的當前年月日時分秒 190412090428 --- select to_char(Sysdate,'yyMMddHHmmss') into nowDate from dual; --組成單號的字符串 Rw190412090428_1--- billNo:= prefix || nowDate || singStr|| billType; return billNo; end;
注意事項:function
1) 若是函數的參數是字符串,那邊它的數據類型是varchar2,而不是varchar2(20)class
2) 函數定義的返回類型是什麼類型,就得return 什麼類型
3)若是包含if 判斷,記得是if-elsif 不是 if-else if