- PR -

unixODBCでの.付きテーブル(AS400のファイル)にアクセスするには

1
投稿者投稿内容
きのこ
ぬし
会議室デビュー日: 2004/09/01
投稿数: 256
投稿日時: 2006-12-21 16:26
AS400のなかに.付きのテーブル(AS400でいうファイル)
があるのですが、Windows系では
http://support.microsoft.com/kb/181211
====================
質問 : ファイル名にピリオド(.) を含んだ AS/400 ファイルにアクセスしようとすると以下のエラー メッセージが表示されます。

リレーショナル データベース <名> が現在のサーバー名 <サーバー名> と異なります。

どんな問題が発生しているのですか ?

回答 : ピリオドを含むファイル名は SQL では無効なため、SQL ステートメント上にファイル名を直接入力し、引用符で囲む必要があります (下例参照)。引用符に挟まれた文字は書かれた通りに扱われ、大文字と小文字が区別されます。
Select * FROM LIB."TEST.FILE"
=====================
のように"でくくることで回避できるようなのですが
linuxのODBCではどのように回避できるのでしょうか
ドライバーはiSeriesAccessをいれてます。
(この問題を回避もっといいドライバーがあればぜひ教えてください、
またODBC.iniの設定で回避できるのであれば教えてください

http://www-03.ibm.com/servers/eserver/iseries/access/linux/guide/odbcproperties.html
に設定がありいろいろ試してはいるのですが・・・

iSQLでためして、mytableのコピー my.table を作成してもらい
CDからインストールしたWINDOWSでは
select * from my.table
ではだめでしたが
select * from "my.table"
でいけました

しかしLinuxだと'、`,"
どれで囲んでもだめです。
PHPでテーブルの一覧を出す関数を実行すると、
my.tableはテーブルとしては表示されるのですが中にアクセスできません。
(というよりそういう関数がPHPにはありません)

なにかいい方法はあるでしょうか?
1

スキルアップ/キャリアアップ(JOB@IT)