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ÍMBOLO | DESCRIPCIÓN |
9 | Carácter de número único. Elimina los ceros iniciales y finales. Incluye un guión inicial (-) para números negativos. |
0 | Carácter de número único. Incluye ceros iniciales y finales. |
FM | Indica que el formato debe suprimir todos los espacios en blanco iniciales y finales |
$ | Incluir un signo $ inicial |
B | Cambia el formato ‘0’ y reemplaza los 0 iniciales con espacios en blanco. |
S | Incluir signos positivos (+) y negativos (-) |
PR | Indique el signo del número con paréntesis angulares (<>) |
MI | Indicar el signo menos |
RN or rn | Muestra el número en números romanos (mayúsculas o minúsculas) |
D | Indica la posición del punto decimal (.) |
G | Agrega 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 |
C | Agrega el símbolo de moneda ISO |
L | Agrega el símbolo de moneda local |
EEEE | Muestra el valor usando notación científica |
TM | Muestra el texto mínimo en TM9 (predeterminado) o TME (notación científica) |
U | Muestra en la posición especificada el euro (u otro) símbolo de moneda dual. |
V | Muestra el valor multiplicado por 10n, donde n es el número de 9 después de la letra V. |
X | Devuelve 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
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.