修飾子は、修飾されるオブジェクトであるエンティティの所有者またはコンテキストを指定する名前です。 修飾するオブジェクトは、修飾子名の後ろに空白を入れずにドット、その後ろに空白を入れずに修飾されるオブジェクトの名前を続けて指定します。 この構文はドット表記と呼ばれています。
オブジェクト修飾の構文は次のとおりです。
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
列)