Qualifiers

qualifier*は、資格のオブジェクトであるエンティティの所有者またはコンテキストを指定する名前です。修飾オブジェクトは、修飾子名とそれに続く空白を含まないドット、その後に空白を含まないで修飾されるオブジェクトの名前として指定されます。この構文は*ドット表記 と呼ばれます。

修飾されたオブジェクトの構文は次のとおりです。

<qualifier.> [ <qualifier.> ]... <object>

qualifier はオブジェクトの所有者の名前です。 object は qualifier に属するエンティティの名前です。先行する修飾子が後続の修飾子とオブジェクトによって識別されるエンティティを所有している場合、資格のチェーンを持つことができます。

ほとんどすべての識別子を修飾できます。識別子が修飾されるものは、識別子が表すものとその使用のコンテキストに依存します。

資格のいくつかの例を次に示します。

  • 所属するスキーマによって修飾されたプロシージャ名と関数名-例:schema_name.procedure_name(...)

  • 所属するスキーマによって修飾されたトリガー名-例:schema_name.trigger_name

  • 所属するテーブルで修飾された列名-例:emp.empno

  • 所属するスキーマによって修飾されたテーブル名- public.emp など

  • テーブルとスキーマで修飾された列名-例:public.emp.empno

一般的な規則として、SPLステートメントの構文で名前が表示される場合は常に、その修飾名も使用できます。通常、修飾名は、名前にあいまいさが関連付けられている場合にのみ使用されます。たとえば、2つの異なるスキーマに属する同じ名前の2つのプロシージャがプログラム内から呼び出される場合、または同じプログラム内のテーブル列とSPL変数に同じ名前が使用される場合です。

可能な限り、修飾名を使用しないでください。この章では、命名の競合を回避するために、次の規則が採用されています。

  • SPLプログラムの宣言セクションで宣言されたすべての変数には、 v_ という接頭辞が付きます。例:v_empno

  • プロシージャまたは関数の定義で宣言されたすべての仮パラメータには、 p_ という接頭辞が付きます。例:p_empno

  • 列名と表名には、特別な接頭辞規則はありません。たとえば、表 emp の列 empno