Qualifiers¶
</ div>
修飾子は、資格のオブジェクトであるエンティティの所有者またはコンテキストを指定する名前です。修飾オブジェクトは、修飾子名前の後に空白が挿入されていないドットが続き、その後に空白文字が挿入されていないオブジェクトの名前として指定され空白文字。この構文はドット表記*と呼ばれます。
修飾オブジェクトの構文は次のとおりです。
<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