PLSQL: Función TO_NUMBER

por

en

TO_NUMBER(expr [, formato_mascara [, ‘nls_language_id’ ] ])

TO_NUMBER convierte expresión a un valor de tipo de datos numérico.

La expresión puede ser un valor BINARY_FLOAT o BINARY_DOUBLE o un valor de tipo de datos CHAR, VARCHAR2, NCHAR o NVARCHAR2 que contenga un número en el formato que especifiquemos en el primer parámetro opcional de la función TO_NUMBER.

nls_language_id es un parámetro opcional que se utiliza para especificar el idioma nls que se utilizará para la conversión.

Esta función no admite parámetros de entrada en tipo de datos CLOB directamente. Sin embargo, los CLOB se pueden pasar como argumentos a través de la conversión de datos implícita.

Un ejemplo sencillo:

SELECT TO_NUMBER(‘155’) FROM DUAL;

Con decimales:

SELECT TO_NUMBER(‘155,69’) FROM DUAL;

— Resultado 155,69

Si nos fijamos en el ejemplo anterior, usamos la coma decimal, esto es por la configuración de Oracle.

Si queremos usar el formato que nosotros queramos, debemos hacer uso del segundo argumento de la función (que es opcional)

SELECT TO_NUMBER(‘155.69’, ‘9999.99’) FROM DUAL;

— Resultado 155,69

SELECT TO_NUMBER(‘155.69’, ‘9999D99’) FROM DUAL;

— Resultado 155,69

La máscara de formato TO_NUMBER de Oracle para esta función debe tener un formato de número. Los valores posibles para los formatos de número que puede usar son:

SÍMBOLODESCRIPCIÓN
9Carácter de número único. Elimina los ceros iniciales y finales. Incluye un guión inicial (-) para números negativos.
0Carácter de número único. Incluye ceros iniciales y finales.
FMIndica que el formato debe suprimir todos los espacios en blanco iniciales y finales
$Incluir un signo $ inicial
BCambia el formato ‘0’ y reemplaza los 0 iniciales con espacios en blanco.
SIncluir signos positivos (+) y negativos (-)
PRIndique el signo del número con paréntesis angulares (<>)
MIIndicar el signo menos
RN or rnMuestra el número en números romanos (mayúsculas o minúsculas)
DIndica la posición del punto decimal (.)
GAgrega un separador de grupo (a menudo una coma) en una posición
,Agrega una coma en una posición
.Agrega un punto en una posición
CAgrega el símbolo de moneda ISO
LAgrega el símbolo de moneda local
EEEEMuestra el valor usando notación científica
TMMuestra el texto mínimo en TM9 (predeterminado) o TME (notación científica)
UMuestra en la posición especificada el euro (u otro) símbolo de moneda dual.
VMuestra el valor multiplicado por 10n, donde n es el número de 9 después de la letra V.
XDevuelve el valor hexadecimal del número de dígitos especificado.

Si no se especifica la máscara de formato, utiliza el carácter de punto (.) como lugar decimal y no reconoce ningún otro símbolo.

Algunos ejemplos más:

SELECT TO_NUMBER(‘€123.45’, ‘L999.99’) FROM DUAL; 

— Resultado 123,45

SELECT TO_NUMBER(‘155.69’, ‘999.00’) FROM DUAL;

— Resultado 155,69

SELECT TO_NUMBER(‘99,68′, ’99D99’) FROM DUAL;

— Resultado 99,68

SELECT TO_NUMBER(‘27.999,68′, ’99G999D99’) FROM DUAL;

— Resultado 27999,68Más información en: https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm


Comentarios

Deja una respuesta