最近專案搞規則引擎,然後涉及到資料庫的日期比較,而業務鏈比較長,再加上動態表的日期資料存的都是字串,還有的業務表日期存的就是date型別資料,這樣一來無法選用to_char 或者 是to_date ,所以寫了個過載函式,直接返回的資料型別為date
我寫了個oracle函式過載的demo 拿出來分享下,如下
create or replace package myoverloadfunc as
--@author:lidongbo
function myfunc(p_param in number)
return varchar2;
pragma restrict_references(myfunc, wnds, rnds, wnps, rnps);
function myfunc(p_param in date)
return varchar2;
pragma restrict_references(myfunc, wnds, rnds, wnps, rnps);
function myfunc(p_param in varchar2)
return varchar2;
pragma restrict_references(myfunc, wnds, rnds, wnps, rnps);
function myfunc(p_param out varchar2)
return varchar2;
pragma restrict_references(myfunc, wnds, rnds, wnps, rnps);
function myfunc(p_parama in varchar2,p_paramb in number)
return varchar2;
pragma restrict_references(myfunc, wnds, rnds, wnps, rnps);
end myoverloadfunc ;
create or replace package body myoverloadfunc as
--@author:lidongbo
function myfunc(p_param in number)
return varchar2 is
begin
return 'number';
end myfunc;
function myfunc(p_param in date)
return varchar2 is
begin
return 'date';
end myfunc;
function myfunc(p_param in varchar2)
return varchar2 is
begin
return 'in varchar2';
end myfunc;
function myfunc(p_param out varchar2)
return varchar2 is
begin
return 'out varchar2';
end myfunc;
function myfunc(p_parama in varchar2,p_paramb in number)
return varchar2 is
begin
return 'varchar2 , number ';
end myfunc;
end myoverloadfunc;
客戶程式
select myoverloadfunc.myfunc(999) from dual;
--結果:number
select myoverloadfunc.myfunc(sysdate) from dual;
--結果:date
select myoverloadfunc.myfunc('string') from dual;
--異常,原因不支援同個數同型別引數而in out 不同過載
select myoverloadfunc.myfunc('string',999) from dual;
--結果:varchar2 , number
oracle 函式 實現過載 C 函式過載
一 函式過載的概念 在實際開發中,有時候我們需要實現幾個功能類似的函式,例如把變數的值寫入檔案,變數的型別可能是int long double char,通過引數把變數傳入函式。在c語言中不允許函式同名,程式設計師只能設計出四個不同名的函式,其函式宣告如下 bool writetofile int ...
mysql 函式過載 C 方法過載(函式過載)
在講解 c 構造方法 時提到定義構造方法時提到可以定義帶 0 到多個引數的構造方法,但構造方法的名稱必須是類名。實際上,這就是乙個典型的方法過載,即方法名稱相同 引數列表不同。引數列表不同主要體現在引數個數或引數的資料型別不同。在呼叫過載的方法時系統是根據所傳 遞引數的不同判斷呼叫的是哪個方法。例項...
方法(函式) 過載 陣列
一 方法 函式 public static 返回值型別或void 方法名 資料型別 變數名1,資料型別 變數名2,資料型別 變數名 返回型 void 沒有返回值時就使用void 但可用return 來終止程式。有返回值時 不能用return return 返回值一定要和返回值型別匹配。二 方法過載 ...