2007-06-19

Como arranjar a lista de meses?

Como arranjar a lista de meses? e já agora num outro idioma!

Uma bela utilização do CONNECT BY :-)
Funciona com a versão 9i e posteriores (devido ao CONNECT BY)




DECLARE
l_language nls_session_parameters.VALUE%TYPE;
BEGIN
-- guardamos o valor usado do idioma
SELECT VALUE
INTO l_language
FROM nls_session_parameters
WHERE parameter = 'NLS_LANGUAGE';

-- mudar para outro idioma (PORTUGUES no exemplo)
DBMS_SESSION.set_nls ('NLS_LANGUAGE', 'PORTUGUESE');

--ciclo principal ....o SQL retorna os meses e o numero da sequencia
FOR c IN
(SELECT TO_CHAR (ADD_MONTHS (TO_DATE ('01/01/2000', 'DD/MM/RRRR')
, r.l - 1
)
, 'MONTH'
) AS month_descr
, r.l AS month_ind
FROM (SELECT LEVEL l
FROM DUAL
CONNECT BY LEVEL <= 12) r ORDER BY 2)
LOOP
DBMS_OUTPUT.put_line (c.month_ind || ' - ' || c.month_descr);
END LOOP;
-- alteramos agora o idioma para o idioma anterior :-)
DBMS_SESSION.set_nls ('NLS_LANGUAGE', l_language);
END;


O mesmo poderia ser aplicado para retornar os dias.

Versão em inglês / English Version

No comments:

Post a Comment

Os comentários são moderados.
The comments are moderated.