DatabaseMetaDataを使ってカラム一覧や主キー一覧などを取得するときには、格納方法を判断して識別子を大文字や小文字に変換してから使用する必要がある。
引用符付きの識別子は、基本使わない(使っとこともない)ので、引用符なしの識別子が大文字、小文字どちらで格納されているかを判断するだけのサンプルコード
// storesMixedCaseIdentifiersで引用符なしの識別子の格納方法を判断する。 // falseが返される場合は、大文字、小文字のどちらかで格納されている。 System.out.println("大文字小文字混在の引用符なし識別子を大文字小文字混在で格納する → " + metaData.storesMixedCaseIdentifiers()); // storesLowerCaseIdentifiersで小文字で格納されているかを判断する。 // trueが返される場合は、小文字で格納されている。 System.out.println("引用符なし識別子を小文字で格納する → " + metaData.storesLowerCaseIdentifiers()); // storesUpperCaseIdentifiersで大文字で格納されているかを判断する。 // trueが返される場合は、大文字で格納されている。 System.out.println("引用符なし識別子を大文字で格納する → " + metaData.storesUpperCaseIdentifiers());
実行結果
Oracleの場合
大文字で格納されていることが分かる大文字小文字混在の引用符なし識別子を大文字小文字混在で格納する → false 引用符なし識別子を小文字で格納する → false 引用符なし識別子を大文字で格納する → true
PostgreSQLの場合
小文字で格納されていることが分かる大文字小文字混在の引用符なし識別子を大文字小文字混在で格納する → false 引用符なし識別子を小文字で格納する → true 引用符なし識別子を大文字で格納する → false