- ベストアンサー
Accessから”表名.カラム名”でデータが取り出せない
Java(sdk1.4.2)よりSQLを発行し、Access(2002)のMDBを操作しています。 複数テーブルをJoinで接続し、データを抽出しているのですが、対象2テーブルに同じ"haneibi"と云う項目が有るので、レコードセットからの取り出し処理の際に” wk_T1haneibi = rs.getString("表名.haneibi”)と云う記述をした所、SQLException Column Not Foundで処理が終了してしまいます。 wk_T1haneibiはStringで、haneibiも文字型のデータが入っています。 過去、表名.カラム名で修飾をした際、同じ事態に陥り、ユニークなカラム名だったので表名の修飾を外した所、事態が解消しました。今回は重複名を変更出来ない為、安易な回避が出来ず困っております。 尚、Joinのパラメータでは”表名.カラム名”の修飾が何故か問題なく出来ています。 事態解消にお手をお貸し下さいまし。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ResultSetMetaDataを取得してカラム名を表示させてみてはいかがでしょう? そうすればAccessからどのようなカラム名で取得されているのかわかりますよね。
その他の回答 (1)
- bin-chan
- ベストアンサー率33% (1403/4213)
回答No.1
”表名.カラム名”の個所を ”[表名].カラム名”の個所をとすると、どうなりますか? "."は半角で記述してありますね?
質問者
補足
回答有難うございます。 "."は半角で有る事を確認の上、"[表名].~"を実行してみました。残念ながら発生箇所と事態(Column not found)に変更は有りませんでした。
お礼
とりあえず原因究明の足掛かりとなりました。 結局、取り出せない事態は解決しませんでしたが、カラム名重複項目の内容がどちらも表示対象から除外されたので、結果オーライとなりました。
補足
多少てこずりましたが、ResultSetMetaDataを表示させて見ました。すると、どちらも"ColumnName = hanneiBi"と云う表示がされています。 どうしたら、分けて取り込めますでしょうか…。