Cambiar el delimitador de una base de datos para evitar errores al calcular el porcentaje utilizando el parámetro NLS_NUMERIC_CHARACTERS

Higarigaoka - Odaiba, Sin comentarios
Hola,

En Oracle el parámetro NLS_NUMERIC_CHARACTERS especifica los caracteres a utilizar como separador de grupo y carácter decimal. 


Si se necesita cambiar un delimitador en Oracle, para evitar errores de porcentajes, se debe utilizar el siguiente alter:

ALTER SESSION SET NLS_NUMERIC_CHARACTERS='.,';

Con esto se cambiara el delimitador punto (.) por el delimitador (,) si se desea implementar este alter dentro de una función o procedimiento en Oracle, debe utilizarse de la siguiente forma:

EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_NUMERIC_CHARACTERS=''.,''';

Dentro del begin inicial de un procedimiento.

Si se desea utilizar este parámetro en un select, se puede utilizar así:

SELECT TO_CHAR(1000000000,'999G999G999G999D99','NLS_NUMERIC_CHARACTERS = ''.,''') FROM DUAL;

Y el resultado final es:

1,000,000,000.00

Puesto que se reemplaza el delimitador de punto (.) por el delimitador de coma (,).

0 comentarios :

Publicar un comentario