I’m accessing an Oracle Database from a java application, when I run my application I get the following error:
java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
ORA-01882: timezone region not found
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
You may also try to check the version of the Oracle jdbc driver and Oracle database. Just today I had this issue when using ojdbc6.jar (version 11.2.0.3.0) to connect to an Oracle 9.2.0.4.0 server. Replacing it with ojdbc6.jar version 11.1.0.7.0 solved the issue.
I also managed to make ojdbc6.jar version 11.2.0.3.0 connect without error, by adding
oracle.jdbc.timezoneAsRegion=falsein file oracle/jdbc/defaultConnectionProperties.properties (inside the jar). Found this solution here (broken link)Then, one can add
-Doracle.jdbc.timezoneAsRegion=falseto the command line, orAddVMOption -Doracle.jdbc.timezoneAsRegion=falsein config files that use this notation.You can also do this programmatically, e.g. with
System.setProperty.In some cases you can add the environment variable on a per-connection basis if that’s allowed (SQL Developer allows this in the "Advanced" connection properties; I verified it to work when connecting to a database that doesn’t have the problem and using a database link to a database which has).