Estoy accediendo a una base de datos Oracle desde una aplicación java, cuando ejecuto mi aplicación obtengo el siguiente error:
java.sql.SQLException: ORA-00604: se produjo un error en el nivel 1 de SQL recursivo ORA-01882: no se encontró la región de la zona horaria
Respuestas:
También puede intentar verificar la versión del controlador jdbc de Oracle y la base de datos de Oracle. Hoy mismo tuve este problema al usar ojdbc6.jar (versión 11.2.0.3.0) para conectarme a un servidor Oracle 9.2.0.4.0. Reemplazarlo con ojdbc6.jar versión 11.1.0.7.0 resolvió el problema.
También logré hacer que ojdbc6.jar versión 11.2.0.3.0 se conecte sin errores, agregando el
oracle.jdbc.timezoneAsRegion=false
archivo oracle / jdbc / defaultConnectionProperties.properties (dentro del jar). Encontré esta solución aquíPor último, se puede agregar
-Doracle.jdbc.timezoneAsRegion=false
a la línea de comando, o AddVMOption-Doracle.jdbc.timezoneAsRegion=false
en archivos de configuración que usan esta notaciónfuente
En una instalación simple de SQL-Developer en Windows, vaya al directorio
y añadir
archivar
sqldeveloper.conf
.fuente
Error que tengo:
Error de db_connection.java - >> java.sql.SQLException: ORA-00604: se produjo un error en el nivel 1 de SQL recursivo ORA-01882: no se encontró la región de la zona horaria
ORA-00604: se produjo un error en el nivel de SQL recursivo 1ORA-01882: no se encontró la región de la zona horaria
Código anterior:
nuevo código:
ahora esta funcionando !!
fuente
Actualice el archivo oracle / jdbc / defaultConnectionProperties.properties en cualquier versión de la biblioteca (es decir, dentro de su jar) que esté utilizando para contener la siguiente línea:
fuente
Lo que sucede es que el cliente JDBC envía el ID de zona horaria al servidor. El servidor necesita conocer esa zona. Puedes consultar con
Tengo algunos servidores de base de datos que conocen 'Etc / UTC' y 'UTC' (tzfile versión 18) pero otros solo conocen 'UTC' (tz versión 11).
También hay un comportamiento diferente en el lado del cliente JDBC. A partir de 11.2, el controlador enviará los ID de zona si es "conocido" por Oracle, mientras que antes enviaba la diferencia horaria. El problema con este "envío de ID conocidos" es que el cliente no comprueba qué versión / contenido de zona horaria está presente en el servidor, pero tiene su propia lista.
Esto se explica en el artículo de soporte de Oracle [ID 1068063.1].
Parece que también depende del sistema operativo del cliente, era más probable que Etc / UTC fallara con Ubuntu que con RHEL o Windows. Supongo que esto se debe a una cierta normalización, pero no he descubierto qué es exactamente.
fuente
en eclipse ir a ejecutar -> ejecutar configuración
allí, vaya a la pestaña JRE en los paneles laterales derechos
en la sección Argumentos de VM pegue esto
-Duser.timezone=GMT
luego Aplicar -> Ejecutar
fuente
Tuve este problema al ejecutar pruebas automatizadas desde un servidor de integración continua. Intenté agregar el argumento de VM "
-Duser.timezone=GMT
" a los parámetros de compilación, pero eso no resolvió el problema. Sin embargo, agregar la variable de entorno "TZ=GMT
" lo solucionó.fuente
ERROR:
Solución: configuración de CIM en Centos.
Agregue estos argumentos de Java:
fuente
En Netbeans,
Haga clic en Aceptar, luego vuelva a ejecutar su programa.
Nota: También puede configurar otras piedras de tiempo además de UTC y GMT.
fuente
Me encontré con este problema con Tomcat. Establecer lo siguiente en
$CATALINA_BASE/bin/setenv.sh
resolvió el problema:Estoy seguro de que usar una de las sugerencias de parámetros de Java de las otras respuestas funcionaría de la misma manera.
fuente
También me enfrenté a un problema similar.
Ambiente:
Linux, proyecto de hibernación, controlador ojdbc6 al consultar la base de datos Oracle 11g.
Resolución
El parámetro TZ no se configuró en la máquina Linux, que básicamente le dice a Oracle sobre la zona horaria. Entonces, después de agregar la declaración de exportación "exportar TZ = UTC" en el momento del inicio de la aplicación, resolví mi problema.
UTC -> Cambiar según su zona horaria.
fuente
Si este problema está en JDeveloper: cambie las propiedades del proyecto tanto para el modelo como para la vista del proyecto -> ejecutar / depurar -> perfil predeterminado -> editar agregue la siguiente opción de ejecución: -Duser.timezone = Asia / Calcutta
Asegúrese de que el valor de la zona horaria anterior se obtenga de su base de datos de la siguiente manera:
Junto con eso, querrá verificar la configuración de la zona horaria en su jdev.conf, así como en JDeveloper -> Menú de aplicación -> Propiedades predeterminadas del proyecto -> Ejecutar / Depurar -> Perfil predeterminado -> Opciones de ejecución.
fuente
Yo también tuve el mismo problema cuando intenté crear una conexión en JDeveloper. Nuestro servidor se encuentra en una zona horaria diferente y, por lo tanto, generó los siguientes errores como:
Hice referencia a muchos foros que pedían incluir la zona horaria en las Opciones de Java (Ejecutar / Depurar / Perfil) de las propiedades del proyecto y las propiedades del proyecto predeterminado como
-Duser.timezone="+02:00"
b, pero no funcionó para mí. Finalmente, la siguiente solución funcionó para mí.Agregue la siguiente línea al archivo de configuración de JDeveloper ( jdev.conf ).
El archivo se encuentra en "<raíz de instalación de Oracle> \ Middleware \ jdeveloper \ jdev \ bin \ jdev.conf".
fuente
En mi caso, podría hacer que la consulta funcionara cambiando "TZR" por "TZD" ..
fuente
Pude resolver el mismo problema configurando la zona horaria en mi sistema Linux (Centos6.5).
Reposicionando desde
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html
establecer la zona horaria en,
/etc/sysconfig/clock
por ejemplo, establecer en ZONE = "America / Los_Angeles"sudo ln -sf / usr / share / zoneinfo / America / Phoenix / etc / localtime
Para averiguar el valor de la zona horaria, intente
y busque el archivo que representa su zona horaria.
Una vez que haya configurado estos, reinicie la máquina e intente nuevamente.
fuente
Tuve el mismo problema al intentar hacer una conexión en OBIEE a Oracle db. Cambié mi zona horaria de Windows de (GMT + 01: 00) África Central Occidental a (GMT + 01: 00) Bruselas, Copenhague, Madrid, París. Luego reinicié mi computadora y funcionó bien. Parece que Oracle no pudo reconocer la zona horaria de África central occidental.
fuente
Este problema ocurre porque el código que está intentando conectarse a db tiene una zona horaria que no está en db. También se puede resolver configurando la zona horaria como se muestra a continuación o cualquier zona horaria válida disponible en Oracle db. zona horaria válida que se puede encontrar seleccione * de v $ versión;
System.setProperty ("user.timezone", "America / New_York"); TimeZone.setDefault (nulo);
fuente
Al enfrentar el mismo problema con Eclipse y una base de datos Oracle distante, cambiar la zona horaria de mi sistema para que coincida con la zona horaria del servidor de la base de datos solucionó el problema. Reinicie la máquina después de cambiar la zona horaria del sistema.
Espero que esto pueda ayudar a alguien
fuente
Para este tipo de error, simplemente cambie la hora de su sistema al formato GMT estándar de su país
por ejemplo, la zona horaria de la India es chennai, kolkata.
fuente