私は奇妙な種類のシナリオに直面しています。次のテーブルがあり、2 つの列があります。
Customer:
Customer_ID nvarchar2
Subscription_Date Date
以下に示すように、メタデータを使用して Subscription_Date の列タイプを取得しようとしています。
ResultSet rs = selectStmt.executeQuery("SELECT Customer_ID, Subscription_Date FROM Cusomter");
java.sql.ResultSetMetaData rsMetaData = rs.getMetaData();
int type1 = rsMetaData.getColumnType(2);
JDK 1.6 と ojdbc6.jar を使用すると、次のようtype1
に返されます。
93 (java.sql.Types.TIMESTAMP)
JDK 1.5 と ojdbc14.jar を使用すると、次のようtype1
に返されます。
91 (java.sql.Types.DATE)
ただし、どちらのシナリオでも、Subscription_Date の実際の列の型は ですDATE
。これは下位互換性の問題ですか? それとも私のコーディング方法が間違っていますか?皆さん、それを調べて、何か提案をしていただけませんか?