AS400/IBMi View(ビュー)を作成したり削除したり一覧表示する

IT関連

素人の備忘録なので、あまりよく解っていませんが、ビューの作り方です。

なんでViewを作る必要があるのかすら不明です。知ってる人は逆にコメント欲しいです。

 

思っていることは、論理ファイルは容量を食うので作るとか、物理ファイル名をそのままSQLに組み込んでしまうと、そのファイル名が洩れた時に変えられないという話とか。そもそも論理ファイルよりも高性能だとか。

 

Viewの作り方

CREATE VIEW スキーマ名.テーブル名 AS SQL文;

こんな感じ。

具体的には下記のような文。

CREATE VIEW ALLLIB.ZAIKO AS
SELECT * FROM TOKYO.ZAIKO UNION
SELECT * FROM OSAKA.ZAIKO UNION
SELECT * FROM FUKUOKA.ZAIKO UNION
SELECT * FROM NAGOYA.ZAIKO
;

全店の在庫をALLでまとめるSQL。

意味は、

CREATE VIEW=ビューを作る
AS=~で定義する

もちろんまとめるSQL文は自由。UNIONでもJOINでも何でもいいはず。

 

Viewの一覧表示

これもSQLで表示する。大元のSQLはSELECT * FROM SYSIBM.TABLES;

select * from sysibm.views;

 

出力結果はこんな感じ。お見せできないが、確かにCREATE VIEWしたものが表示されている。

VIEW_DEFINITIONがSQL文になる。
TABLE_SCHEMAがスキーマ名。
TABLE_NAMEがテーブル名。

スキーマ名とテーブル名はさきほどCREATE VIEWの直後に指定した文字列だ。

他のDBMSはよく解らないが、AS400に関してはスキーマ名.テーブル名のように指定する必要があるみたい。

上のリストを見ればちゃんと分かれているからそれが証拠。

他にもたくさんのViewがあるが、自分が作っていないものもある。システムが作っているのでしょう。

 

Viewを削除する

削除はDROPを使う。

DROP VIEW ALLLIB.ZAIKO;

再度 SELECT * FROM SYSIBM.VIEWS;で調べると確かに消えている。

だからSYSIBM.VIEWSで把握できることがハッキリした。

 

Viewを使う

使い方は色々。スキーマ名.ファイル名で指定すれば使えるので、ライブラリリストにスキーマ名があれば、RPGでも使えるのかも。

試して確実に使えるのは、PHPで使えたのと、WebQUERYで使えた。

コメント

タイトルとURLをコピーしました