orace如何建立函數並調用

咱們來定義一個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

相關文章
相關標籤/搜索