- 締切済み
円マークのフィールドに対してSELECT文が実行できない
いつも参考にさせていただいております。 DB2(AS400)に対してJDBC経由で、円マーク(\)をんだフィールドに対してSELECT文を実行しようとすると、エラーになってしまいます。 フィールドの前にもう一つ円マークを付加して、フィールド名をダブルコーテーションでくくってみたのですが、テーブルには該当するフィールドがないというエラーになってしまいます。 以下のようなJavaのコードになります。 String sqlStr = "SELECT " + "\"" + "\\COL1" + "\"" + " FROM TABLE1"; 上記からは以下のSQLが作成されます。 SELECT "\COL1" FROM TABLE1 このSQL文を、DB2のツールで実行すると問題なく処理されて、値が返ってきます。 Java(JDBC経由)の場合は、どのように記述したら宜しいのでしょうか? 宜しくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- sh_hirose
- ベストアンサー率66% (56/84)
回答No.1
DB2はよく知らないのですが、 String sqlStr = "SELECT \\COL1 FROM TABLE1"; でいいじゃないでしょうか? SELECT "\COL1" FROM TABLE1 ↓ SELECT \COL1 FROM TABLE1 カラム名が「"\COL1"」なら別ですが・・・。
補足
ご回答ありがとうございます。 >String sqlStr = "SELECT \\COL1 FROM TABLE1"; >でいいじゃないでしょうか? フィールド名自体は、\COL1 となります。 \を追加しただけでは(\\COL1としても)、該当するフィールドがないというエラーになってしまいます。 フィールド名に\マークがある場合には、ダブルコーテーションでくくるという情報があったので、実行してみたのですがダメでした。 以下のように対応することで、SELECT処理を実行することができました。 1.DB2のCCSIDを、5035 に設定。 2.SELECT文において、\の部分を$に変更 SELECT $COL1 FROM TABLE1 CCSIDを5035に設定することにより、\マークは$マークと記述することによって認識できるようです。