Pérola. Detalhe que a função prevê que o banco pode estar configurado para português ou inglês.
Selecionar tudo
CREATE OR REPLACE FUNCTION RETORNA_mês (
DATA DATE)
RETURN VARCHAR2 IS
mês VARCHAR2 (255);
BEGIN
mês := SUBSTR(TO_CHAR(data),4,3);
IF mês = 'JAN' then
mês:='JANEIRO';
elsif mês = 'FEB' then
mês:='FEVEREIRO';
elsif mês = 'MAR' then
mês:='MARCO';
elsif mês = 'APR' then
mês:='ABRIL';
elsif mês = 'MAI' then
mês:='MAIO';
elsif mês = 'JUN'then
mês:='JUNHO';
elsif mês = 'JUL' then
mês:='JULHO';
elsif mês = 'AUG' then
mês:='AGOSTO';
elsif mês = 'SEP' then
mês:='SETEMBRO';
elsif mês = 'OCT' then
mês:='OUTUBRO';
elsif mês = 'NOV' then
mês:='NOVEMBRO';
elsif mês = 'DEC' then
mês:='DEZEMBRO';
elsif mês = '01/' then
mês:='JANEIRO';
elsif mês = '02/' then
mês:='FEVEREIRO';
elsif mês = '03/' then
mês:='MARCO';
elsif mês = '04/' then
mês:='ABRIL';
elsif mês = '05/' then
mês:='MAIO';
elsif mês = '06/'then
mês:='JUNHO';
elsif mês = '07/' then
mês:='JULHO';
elsif mês = '08/' then
mês:='AGOSTO';
elsif mês = '09/' then
mês:='SETEMBRO';
elsif mês = '10/' then
mês:='OUTUBRO';
elsif mês = '11/' then
mês:='NOVEMBRO';
elsif mês = '12/' then
mês:='DEZEMBRO';
end if;
return(mês);
END RETORNA_mês;
Depois de rir um bocado, reescrevi.
Selecionar tudo
CREATE OR REPLACE FUNCTION RETORNA_mês (
DATA DATE)
RETURN VARCHAR2 IS
BEGIN
RETURN TO_CHAR (DATA,
'MONTH',
'NLS_DATE_LANGUAGE=PORTUGUESE');
END RETORNA_mês;
Mas mantive o código antigo comentado. Merece.