Oracle的Package的作用:簡化應用設計、提高應用性能、實現信息隱藏、子程序重載。
CREATE OR REPLACE PACKAGE PT6.Sys_Common_If_p IS
-- Author : zimoxianchen
-- Created : 2013-12-20 20:29:47
-- Purpose : 包含一些公用的方法和函數
/***************************************************************************
* 功能描述:獲取某個lookup_type的lookup_code對應的lookup_name
* 編寫人:zimoxianchen
* 編寫日期: 2013-12-20
***************************************************************************/
FUNCTION Get_Lookup_Name(i_Lookup_Type VARCHAR2, i_Lookup_Code VARCHAR2) RETURN VARCHAR2;
/***************************************************************************
* 功能描述:通過sys_user_id獲得用戶姓名
* 編寫人:zimoxianchen * 編寫日期: 2013-12-20
***************************************************************************/
FUNCTION Get_User_Name_By_Uid(i_Sys_User_Id varchar2) RETURN VARCHAR2;
END Sys_Common_If_p;
CREATE OR REPLACE PACKAGE BODY Sys_Common_If_p IS
/***************************************************************************
* 功能描述:獲取某個lookup_type的lookup_code對應的lookup_name
* 編寫人:zimoxianchen
* 編寫日期: 2013-12-20
***************************************************************************/
FUNCTION Get_Lookup_Name(i_Lookup_Type VARCHAR2, i_Lookup_Code VARCHAR2)
RETURN VARCHAR2 IS
v_Lookup_Name Sys_Lookup_Tl.Lookup_Name%TYPE;
BEGIN
IF i_Lookup_Code IS NULL THEN
RETURN '';
END IF;
BEGIN
SELECT Sltl.Lookup_Name
INTO v_Lookup_Name
FROM Sys_Lookup Sl, Sys_Lookup_Tl Sltl, Sys_Lookup_Type Slt
WHERE Sl.Id = Sltl.Sys_Lookup_Id
AND Slt.Id = Sl.Sys_Lookup_Type_Id
--AND Sltl.Sys_Language_Id = Get_Session_Info.Get_Language_Id()
AND Slt.Lookup_Type = i_Lookup_Type
AND Sl.Lookup_Code = i_Lookup_Code;
EXCEPTION
WHEN OTHERS THEN
v_Lookup_Name := '';
END;
RETURN v_Lookup_Name;
END Get_Lookup_Name;
/***************************************************************************
* 功能描述:通過sys_user_id獲得員工姓名
* 編寫人:zimoxianchen
* 編寫日期: 2013-12-20
***************************************************************************/
FUNCTION Get_User_Name_By_Uid(i_Sys_User_Id varchar2) RETURN VARCHAR2 IS
sys_user_name Sys_User.Name%TYPE;
BEGIN
IF i_Sys_User_Id IS NULL THEN
RETURN '';
END IF;
BEGIN
SELECT Sys_User.NAME
INTO sys_user_name
FROM Sys_User
WHERE Id = i_Sys_User_Id;
EXCEPTION
WHEN OTHERS THEN
sys_user_name := '';
END;
RETURN sys_user_name;
END Get_User_Name_By_Uid;
END Sys_Common_If_p;