package app_product as function is_onhotlist( p_product_id in number) return varchar2 ; function get_standard_product_discount return number ; function get_hotlist_product_discount return number ; function get_product_price( p_product_id in number) return number ; end app_product; package body app_product as function is_onhotlist( p_product_id in number) return varchar2 is l_result varchar2(1):='N'; begin if p_product_id < 20 then l_result :='Y'; else if mod(p_product_id,3) = 0 then l_result :='Y'; end if; end if; return l_result; end is_onhotlist; function get_standard_product_discount return number is begin return 8; end get_standard_product_discount; function get_hotlist_product_discount return number is begin return 17; end get_hotlist_product_discount; function get_product_price( p_product_id in number) return number is begin -- some non-sensical formula to calculate the product price return 145 * mod(p_product_id ,5) + 13* to_number(to_char(sysdate ,'MI')); end get_product_price; end app_product; ================================================================================ package app_utils as function is_monday( p_date in date) return varchar2 ; end app_utils; package body app_utils as function is_monday( p_date in date) return varchar2 is l_day varchar2(10); begin select to_char( p_date, 'DAY') into l_day from dual ; if l_day='MONDAY' then return 'Y'; else return 'N'; end if; return 'N'; exception when others then return 'N'; end is_monday; end app_utils;