Função RETORNA_MES

Este forum é dedicado a códigos errados que se encontram por aí, ou seja, coisas que não se deve fazer de jeito nenhum! Não coloque neste forum dúvidas! (apenas situações bizarras do nosso dia a dia :-)
Responder
Avatar do usuário
Marciel
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 158
Registrado em: Qui, 03 Mai 2007 10:12 am
Localização: Vitória - ES
Sabe qual o cúmulo da ignorância, da apatia e da ira?
Não sei, não quero saber e tenho raiva de quem sabe.

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.
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Outra coisa peculiar: eu nunca tinha visto até hoje uma variável com ACENTUAÇÃO... (mês)
:roll:
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes