自分の忘備録なので間違っていたらご容赦ください。
また、別のいい方法があれば是非コメント欄で教えて頂けると助かります。
エイリアスALIASとは
Linuxでも使いますがファイルやコマンドに付ける「別名」のことです。長い名前のコマンドに短く端的な名前を付けて利便性を良くすることに使うそうです。
IBMiにおけるエイリアスの用途
SQLでは直接メンバーを指定できないので、エイリアスを使用するそうです。
メンバーとは、ライブラリ→オブジェクト(ファイル)→メンバーのこれですね。
基本的にメンバーは*FIRSTになっていて、最初のメンバーを引っ張るようですが、メンバーが複数あるファイルもあります。IBMiはなんでこんな面倒な仕組みがあるのでしょう。
「IBMiからのデータ転送」というツールで
ライブラリ/ソースファイル(メンバー)
のようにメンバーを指定出来るので、SQLでも同じように指定してみましたがダメでした。
エイリアス作り、エイリアスを介して指定するとうまくいきました。
エイリアスの登録
エイリアスを登録するときはSQLで登録しました。
CREATE ALIAS 保存するライブラリ.別名 FOR 対象ライブラリ.オブジェクト(メンバー);
FORの右側が対象、左側が作成されるエイリアスになります。
FIZLIBのFIZFILEのFIZMBRを対象とした別名を、BUZLIBというライブラリの中に、BUZALSという名前で作る場合は、
CREATE ALIAS BUZLIB.BUZALS FOR FIZLIB.FIZFILE(FIZMBR);
と指定します。
BUZLIBは別名の保存場所、BUZALSは別名ですがちゃんとオブジェクトです。
エイリアスをSQLで指定する
わざわざ書くほどのことではありませんが、
SELECT * FROM BUZLIB.BUZALS;
と指定すれば、FOR以下に指定したFIZLIB.FIZFILE(FIZMBR)の内容が表示されます。
エイリアスの一覧照会
何のエイリアスを登録したのかを調べる方法です。
プログラム開発管理機能(PDM)をSTRPDMで呼び出し、2のオブジェクトの処理から確認します。
タイプを*FILEにして、属性を*DDMFで指定すればOKです。
こんな感じで一覧表示されます。詳細を見るなら5番で確認します。
ただ、表示される内容は対象のライブラリとオブジェクトだけでメンバー名は表示されませんし、DDMFは別名以外にもあるみたいです。CREATE ALIASで作った覚えのないオブジェクトもDDMFの登録でちらほらありました。
誰も知らないエイリアスが紛れていたなんてことはこれで確認すれば防ぐことができますが、やはり別途で登録簿を作っておいた方がいいかも。
DDMFとは、IBMiのサイトには「分散データ管理機能(DDM)ファイルの属性」と書いてありました。
エイリアスALIASの削除
エイリアスを削除するにはSQLで下記のように指定する。
DROP ALIAS ライブラリ.オブジェクト;
もちろんライブラリとオブジェクトの指定は作ったエイリアスを指定すること。
さきほどの指定ならば
DROP ALIAS BUZLIB.BUZALS;
と指定して実行すれば削除されます。
PDMで見た一覧からもちゃんと消えていました。
対象はファイルでもできる
メンバーを読むことが本来の目的でしたが、ライブラリのオブジェクト(ファイル)指定も可能のようです。
CREATE ALIAS BUZLIB.BUZALS FOR FIZLIB.FIZFILE;
と指定します。これだと本当に別名ってだけですけど可能です。
コメント