lunes, 4 de junio de 2007

Configurar Idioma y decimales en Oracle 10g

http://geocities.com/davidcastilloespinoza

Si utilizas Power Builder con Base de datos oracle y tienes problemas en la utilización de puntos decimal y separador de miles, en este caso, la versión de PB en que trabajes, es indiferente, el problema, es la incompatibilidad en el SET de caracteres del ORACLE entre el cliente y el set de caracteres con el cual ha sido instalada la DB, ya que un en la base de datos esta definida como 123.125,25 y para el cliente 123,125.25 Si te fijas bien el separador de miles es el (.) punto para el cliente.

Antes debemos verificar si el idioma de configuración de la base de datos es la misma que la configuración de sesión.

select * from nls_database_parameters;
select * from nls_session_parameters;

La primera consulta, es para ver los parametros del lenguaje en que fue instalada la DB, y la segunda es para ver los parametros con que esta instalado el cliente(session) en las consultas verifica que las columnas NLS_NUMERIC_CHARACTERS y NLS_LANGUAGE esten iguales en ambas consultas.

Para superar el problema, debes ir al REGEDIT y verificar en la entrada: HKEY_LOCAL_MACHINE -> SOFTWARE -> ORACLE -> HOME0, y cambiar la clave NLS_LANG = SPANISH_SPAIN.WE8ISO8859P1

dicha clave debe quedar

NLS_LANG = AMERICAN_AMERICA.WE8ISO8859P1

NOTA: la carpeta HOME0, también puede ser HOME1 o HOME2, dependiendo el sistema operativo o la versión del ORACLE que tengas instalado..

Si desea cambiar en el cliente entonces debes buscar en:
HKLM -> SOFTWARE ->ORACLE KEY_ORACLIENT10G_HOME1
la llave NLS_LANG debe quedar :


NLS_LANG = AMERICAN_AMERICA.WE8ISO8859P1