martes, 25 de septiembre de 2012

Convertir de Números a Letras usando SQL (Oracle)

Para obtener por SQL la conversión de números a letras podemos usar lo siguiente:

SELECT TO_CHAR ( TO_DATE ( TO_CHAR ( 2012, '99999999999') , 'J'),  'JSP') EN_LETRAS FROM dual;
De lo cual obtenemos:

EN_LETRAS                                                                 
---------------------------------------------------------------------------
TWO THOUSAND TWELVE
1 row selected

Bien, podemos obtener desde el número 1 hasta 5,373,484 y es por la restricción de las fechas julianas (como fecha máxima tenemos 31-Dic-9999)

Explicando el por que y cómo:

Si vamos separando las operaciones que realiza observamos:

1. La primera conversión
TO_CHAR ( 2012, '99999999999') tan solo pasa el número a cadena
2. La segunda operación TO_DATE ( TO_CHAR ( 2012, '99999999999') , 'J') es donde convierte la cadena obtenida en fecha juliana.
3. La tercera parte, donde volvemos esta fecha obtenida en cadena nuevamente, utilizamos la máscara ‘JSP’ en donde J hace referencia a la fecha Juliana, y SP lo lleva a letras (Spell)

Y listo!! Tienes el número en letras.

Espero les sea de utilidad

Translate