sql >> Base de Datos >  >> RDS >> Oracle

Modelo de formato de número TO_Char en Oracle

Tenga en cuenta que está transformando un número en una cadena. El número no tiene ningún sentido de "," o "." ni nada, es un número.

El truco es obtener el TO_CHAR función para convertir el número interno a la representación de cadena que desea. Hay algunos problemas de los que preocuparse:obtener el punto de raíz (decimal) correcto y lidiar con el relleno.

Aquí hay un ejemplo práctico:

SELECT to_char(0.00235,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;

0,00235

SELECT to_char(156.45823,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;

156,45823

SELECT to_char(-0.0235,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;

-0,0235

SELECT to_char(-156.45623,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;

-156,45623

SELECT to_char(123456789.45623,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;

123456789,45623

Las partes relevantes de la máscara:

FM se usa para recortar los espacios en blanco iniciales y finales que Oracle normalmente usa para completar números.

D es el punto de base, según la configuración de NLS.

NLS_NUMERIC_CHARACTERS ... es una anulación de su configuración NLS local; esto puede no ser necesario si su configuración regional usa una coma para el decimal, pero es una forma de forzar este comportamiento en una base de datos con, por ejemplo, la configuración de América del Norte.