que ojdbc7 gratis descargar 12c oracle jdbc nls ora-12705

oracle - ojdbc7 - Configuración NLS_LANG para el controlador JDBC delgado?



jdbc oracle java (5)

Estoy usando el controlador delgado de Oracle JDBC ver 10.2.0 (ojdbc14.jar). Me gustaría configurar su configuración NLS_LANG de forma manual. ¿Hay alguna manera?

Actualmente obtiene esta configuración de la variable VM user.language (que se establece automáticamente al establecer la configuración regional actual o al iniciar desde el entorno del sistema).

Este es un problema cuando los usuarios cambian la configuración regional de la aplicación a una que no es compatible con el controlador Oracle JDBC (por ejemplo, mk_MK). En este caso, la próxima vez que obtengo una conexión obtengo la siguiente excepción:

ORA-00604: error occurred at recursive SQL level 1 ORA-12705: Cannot access NLS data files or invalid environment specified

Puedo cambiar la configuración local sobre la marcha justo antes de buscar la conexión y volver a la seleccionada por el usuario de ida y vuelta, pero esto parece poco elegante e ineficiente.


Debe utilizar el antiguo controlador Oracle 9.2 JDBC que es totalmente compatible y certificado con Oracle 10g. El controlador anterior no utiliza los comandos ALTER SESSION SET NLS_LANGUAGE.


Invocar java con los siguientes trabajos para mí:

-Duser.country=us -Duser.language=en

si "en" para el país también causa ORA-12705 .


La configuración NLS_LANG se deriva de java.util.Locale. Por lo tanto, deberá realizar una llamada similar antes de conectarse:

Locale.setDefault(Locale.<your locale here>);


Luchaba contra el mismo problema y descubrí que los controladores de Oracle jdbc delgados no requieren que se especifique NLS_LANG o la configuración regional del sistema. Pero cuando se conecta a bases de datos no inglesas, debe tener orai18n.jar en el classpath.

de Oracle® Database JDBC Guía del desarrollador y referencia

Proporcionar soporte de globalización

Los archivos básicos de Java Archive (JAR), ojdbc5.jar y ojdbc6.jar, contienen todas las clases necesarias para proporcionar soporte completo de globalización para:

  • El carácter de Oracle establece los datos CHAR, VARCHAR, LONGVARCHAR o CLOB que no se están recuperando o insertando como un miembro de datos de un objeto o tipo de colección de Oracle.
  • Los datos de datos CHAR o VARCHAR del objeto y la colección para el carácter configuran US7ASCII, WE8DEC, WE8ISO8859P1, WE8MSWIN1252 y UTF8.

Para utilizar cualquier otro conjunto de caracteres en los datos CHAR o VARCHAR miembros de objetos o colecciones, debe incluir orai18n.jar en la variable de entorno CLASSPATH de su aplicación.