• 締切済み

円マークのフィールドに対してSELECT文が実行できない

いつも参考にさせていただいております。 DB2(AS400)に対してJDBC経由で、円マーク(\)をんだフィールドに対してSELECT文を実行しようとすると、エラーになってしまいます。 フィールドの前にもう一つ円マークを付加して、フィールド名をダブルコーテーションでくくってみたのですが、テーブルには該当するフィールドがないというエラーになってしまいます。 以下のようなJavaのコードになります。 String sqlStr = "SELECT " + "\"" + "\\COL1" + "\"" + " FROM TABLE1"; 上記からは以下のSQLが作成されます。 SELECT "\COL1" FROM TABLE1 このSQL文を、DB2のツールで実行すると問題なく処理されて、値が返ってきます。 Java(JDBC経由)の場合は、どのように記述したら宜しいのでしょうか? 宜しくお願い致します。

みんなの回答

  • sh_hirose
  • ベストアンサー率66% (56/84)
回答No.1

DB2はよく知らないのですが、 String sqlStr = "SELECT \\COL1 FROM TABLE1"; でいいじゃないでしょうか? SELECT "\COL1" FROM TABLE1 ↓ SELECT \COL1 FROM TABLE1 カラム名が「"\COL1"」なら別ですが・・・。

6860
質問者

補足

ご回答ありがとうございます。 >String sqlStr = "SELECT \\COL1 FROM TABLE1"; >でいいじゃないでしょうか? フィールド名自体は、\COL1 となります。 \を追加しただけでは(\\COL1としても)、該当するフィールドがないというエラーになってしまいます。 フィールド名に\マークがある場合には、ダブルコーテーションでくくるという情報があったので、実行してみたのですがダメでした。 以下のように対応することで、SELECT処理を実行することができました。 1.DB2のCCSIDを、5035 に設定。 2.SELECT文において、\の部分を$に変更   SELECT $COL1 FROM TABLE1 CCSIDを5035に設定することにより、\マークは$マークと記述することによって認識できるようです。

関連するQ&A