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 :-)
  

Mensagemem Sex, 13 Jan 2012 12:19 pm

Pérola. Detalhe que a função prevê que o banco pode estar configurado para português ou inglês.

Código: Selecionar todos
CREATE OR REPLACE FUNCTION RETORNA_MES (
   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_MES;


Depois de rir um bocado, reescrevi.

Código: Selecionar todos
CREATE OR REPLACE FUNCTION RETORNA_MES (
   DATA   DATE)
   RETURN VARCHAR2 IS
BEGIN
   RETURN TO_CHAR (DATA,
                   'MONTH',
                   'NLS_DATE_LANGUAGE=PORTUGUESE');
END RETORNA_MES;


Mas mantive o código antigo comentado. Merece.
Marciel
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.

Mensagemem Qui, 25 Out 2012 4:18 pm

Outra coisa peculiar: eu nunca tinha visto até hoje uma variável com ACENTUAÇÃO... (mês)
:roll:
dr_gori
Localização: Portland, OR USA

Thomas F. G

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



Voltar para Códigos Duvidosos

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante