Spring 'CallableStatementCreator' を使用して、Java EE Web アプリケーション (Java) で Oracle ストアド プロシージャを呼び出そうとしています。ストアド プロシージャの入力の 1 つは DATE です。
私のattributeValueはjava.util.dateで、DD-MM-YYYYとHH:MM:SSの両方を正しく保持しています。次のコードを使用する場合:
callableStmt.setTime(6, new java.sql.Time(attributeValue.getTime()));
その結果、DB の列 (ストアド プロシージャが最終的に DB に書き込む) が 1970-01-01 に設定され、正しい HH:MM:SS が入力として渡されます。これは、アプリケーションの以前のバージョン (JDBC lib 10.xxx を使用したバージョン) で機能しました。
私が使用する場合
callableStmt.setDate(6, new java.sql.Date(attributeValue.getTime()));
DD-MM-YYYY は正しく設定されていますが、時間は 00:00:00 に設定されています。
では、属性を呼び出してこのストアド プロシージャに渡す正しい方法は何でしょうか? また、デバッグのヒントはありますか?
Oracle Database 11g Enterprise Edition リリース 11.2.0.2.0 - 64 ビット プロダクション Oracle JDBD lib: ojdbc6-11.2.0.3