一所懸命に手抜きする

デスクワークばかりのスポーツ嫌いで50歳も過ぎ、いよいよ足腰に衰えを感じつつある昨今。

ピリオドが含まれるAS/400テーブル名のSQL表記法

ピリオドを含むテーブル名

 AS400のテーブル名はAS/400端末で見ると、一般にライブラリ名/ファイル名となります。
 SQLで呼び出す場合には、AS/400上のSTRSQLなどでもライブラリ名.ファイル名となるようです。
 当社のシステム担当が 実績/売上.01、実績/売上.02・・・のようにテーブル名にピリオドを含めて設定しました。
 SQLでは、 SELECT * FROM 実績.売上.01 とやるとエラーとなってしまいます。テーブル名にピリオドが含まれる場合にはどのようにSQLを使えばよいのでしょうか。

コピーしてファイル名を変えるとか

 稼働中のファイルを勝手にリネームする訳にはいきませんが、コピーしてピリオドのないテーブル名にすればよいと考えられます。
 ただ、今回の場合1テーブルが200フィールド×数千万レコードもあります。
 そんな巨大なコピーを作って無駄に領域を専有するのも気が引けます。
 データマイニング的に調べるのでレコードやフィールドを絞りたくありません。

""で囲めばOK!

 答えは簡単でした。
SELECT * FROM 実績."売上.01" のようにテーブル名を"“で囲めばOKです。 f:id:a_habakiri:20161229134725p:plain:w1