Java アプリケーションから Oracle データベースにアクセスしていますが、アプリケーションを実行すると次のエラーが発生します。
java.sql.SQLException: ORA-00604: 再帰SQLレベル1でエラーが発生しました ORA-01882: タイムゾーンの地域が見つかりません
ベストアンサー1
Oracle jdbc ドライバーと Oracle データベースのバージョンを確認することもできます。ちょうど今日、ojdbc6.jar (バージョン 11.2.0.3.0) を使用して Oracle 9.2.0.4.0 サーバーに接続したときにこの問題が発生しました。ojdbc6.jar バージョン 11.1.0.7.0 に置き換えると、問題は解決しました。
oracle.jdbc.timezoneAsRegion=false
また、oracle/jdbc/defaultConnectionProperties.propertiesファイル(jar内)を追加することで、ojdbc6.jarバージョン11.2.0.3.0をエラーなしで接続できるようになりました。この解決策を見つけました。ここ(リンク切れ)
-Doracle.jdbc.timezoneAsRegion=false
次に、この表記法を使用するコマンドラインまたはAddVMOption -Doracle.jdbc.timezoneAsRegion=false
構成ファイルに追加できます。
System.setProperty
これをプログラム的に行うこともできます。たとえば、 を使用します。
場合によっては、許可されていれば、接続ごとに環境変数を追加できます (SQL Developer では、「詳細」接続プロパティでこれを許可しています。問題が発生していないデータベースに接続し、問題が発生しているデータベースへのデータベース リンクを使用すると、これが機能することを確認しました)。