長い列名を使用できたのに! 第二弾
1990年、Gorla、Benander、Benanderという3人のコンピューター サイエンスの教授が、COBOLプログラムにおけるデバッグに要する労力についての論文を発表しました。彼らが述べるところによれば、変数名の長さが10~16文字の場合にデバッグ作業は容易になるとのことです。オリジナルのネイティブなデータ定義機能では、変数名は最長で10文字まで使用可能でしたが、今日ではエイリアス名を定義することができます。これはGorla、Benander、Benanderの3教授が誇りとするものでしょう。
多くのDB2 for iのショップでは、6文字以下のフィールド名を持つ物理ファイルがあることが普通です。そのような命名の慣例は、選ばれるプログラミング言語がRPG IIであったSystem/36などの前身システムの時代からのものです。短いフィールド名をより長いフィールド名に置き換えることは、多くのケースで実際的ではありませんが、そのような状況にある場合、簡単にエイリアス列名を追加することができます。
物理ファイルにエイリアス名を追加する
エイリアス フィールド名の追加は、DDS記述ファイルを使用して簡単に行えます。ALIASキーワードを使用し、Change Physical File(CHGPF)コマンドを実行します。 以下は、NCUSTという名前のファイルのDDSの一部です。
エイリアス名を追加した後の同じDDSが以下です。
ストアード プロシージャーの本文は、アトミック コンパウンド ステートメントです。このことは、プロシージャー全体が1つのトランザクションとして扱われることを意味します。いずれかの部分が失敗した場合、データベースに対して行われたすべての変更がロールバックされます。
以下は、必要となるCHGPFコマンドです。
いくつか付け加えておきたい点があります。 第1に、エイリアスを追加したときにレコード レベルIDは変わりません。ファイルを使用するプログラムを再コンパイルする必要はありません。 第2に、物理ファイルが使用しているのと同じレコード フォーマットを使用している論理ファイルにも、新しいエイリアスが追加されます。同じレコード フォーマットを使用していない論理ファイルには、エイリアスは追加されません。
第3に、ほとんどのネイティブなインターフェースは、エイリアスを使用することができません。たとえば、Copy File(CPYF)は、CREDIT_LIMITではなく、CRDLMTを参照しなければなりません。
RPG IVおよびCOBOLコンパイラーは、エイリアスを使用することができます。RPGでは、ファイル定義(F仕様またはDCL-F)にALIASキーワードを追加します。
COBOLプログラムは、COPYディレクティブのDDオプションを使用します。
SQL表にエイリアス名を追加する
また、SQL表にエイリアス名を追加することもできます。そうするには、CREATE TABLEステートメントのなかなか新しいオプションである、CREATE OR REPLACE TABLEを使用します。 NCUSTOMERSという表が、数十年間、使用されてきた短い名前を用いて作成されているとします。
エイリアス名を追加するには次のようにします。
システム列名および定義は、追加前と同じです。SQL列名(すなわちエイリアス)だけが変わっています。 この表のどのビューも、エイリアス名を自動的に取得しません。それらのビューを再作成する必要があります。 前回、私がエイリアスについて書いてから約6年になります。その間に改善されたことがいくつかあるのを目にして嬉しく思います。