1. ホーム
  2. oracle

[解決済み] ORA-01882: タイムゾーン領域が見つかりません。

2022-01-31 05:25:37

質問

JavaアプリケーションからOracle Databaseにアクセスしているのですが、アプリケーションを実行すると以下のエラーが発生します。

java.sql.SQLException: ORA-00604: 再帰的な SQL レベル 1 でエラーが発生しました。 ORA-01882: タイムゾーン地域が見つかりません。

解決方法は?

また、Oracle jdbc driverとOracleデータベースのバージョンも確認してみてください。ちょうど今日、Oracle 9.2.0.4.0 サーバーに接続するために ojdbc6.jar (バージョン 11.2.0.3.0) を使用したときにこの問題が発生しました。ojdbc6.jar バージョン 11.1.0.7.0 に置き換えることで、この問題は解決しました。

また、ojdbc6.jar バージョン 11.2.0.3.0 をエラーなしで接続できるようにするために oracle.jdbc.timezoneAsRegion=false を、ファイル oracle/jdbc/defaultConnectionProperties.properties (jar内) に追加してください。このような解決策がありました。 これ (リンク切れ)

次に -Doracle.jdbc.timezoneAsRegion=false をコマンドラインに追加するか、あるいは AddVMOption -Doracle.jdbc.timezoneAsRegion=false を、この記法を使用する設定ファイルに追加します。

また、プログラム的にこれを行うこともできます。 System.setProperty .

場合によっては、接続ごとに環境変数を追加することも可能です(SQL Developerでは、"Advanced"接続プロパティで可能です;問題のないデータベースに接続し、問題のあるデータベースへのデータベースリンクを使用して、動作確認をしています)。