23.10.2015

PL/SQL: Месяцы в родительном падеже

Не хотелось плодить кучу условий и использовать какие-либо кириллические константы, поэтому вот:
  function month_rodp(p_date in date) return varchar2
  is
           mon varchar2(20);
  begin
     mon := trim(lower(to_char(p_date, 'MONTH')));
     if (to_char(p_date, 'MM')) in (3,8) then
        mon := mon || chr(1072 using NCHAR_CS);
     else
        mon := substr(mon, 1,  length(mon)-1) || chr(1103 using NCHAR_CS);
     end if;
     return mon;
  end month_rodp;

2 комментария :

Анонимный комментирует...

regexp_replace(regexp_replace(trim(to_char(pDT, ' month', 'NLS_DATE_LANGUAGE = RUSSIAN')),'ь$|й$','я'),'т$','та')

Aleksey Panin комментирует...

Не возбраняется