Qualifiers v16

A qualifier is a name that specifies the owner or context of an entity that's the object of the qualifier. Specify a qualified object using these elements, in order:

  1. The qualifier name
  2. A dot with no intervening white space
  3. The name of the object being qualified with no intervening white space

This syntax is called dot notation.

The following is the syntax of a qualified object.

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

qualifier is the name of the owner of the object. object is the name of the entity belonging to qualifier. You can have a chain of qualifications in which the preceding qualifier owns the entity identified by the subsequent qualifiers and object.

You can qualify almost any identifier. How you qualify an identifier depends on what the identifier represents and its context.

Some examples of qualification follow:

  • Procedure and function names qualified by the schema to which they belong, e.g., schema_name.procedure_name(...)
  • Trigger names qualified by the schema to which they belong, e.g., schema_name.trigger_name
  • Column names qualified by the table to which they belong, e.g., emp.empno
  • Table names qualified by the schema to which they belong, e.g., public.emp
  • Column names qualified by table and schema, e.g., public.emp.empno

As a general rule, where a name appears in the syntax of an SPL statement you can use its qualified name as well. Typically, a qualified name is used only if ambiguity is associated with the name. Examples of ambiguity include, for example:

  • Two procedures with the same name belonging to two different schemas are invoked from a program.
  • The same name is used for a table column and SPL variable in the same program.

Avoid using qualified names if possible. We use the following conventions to avoid naming conflicts:

  • All variables declared in the declaration section of an SPL program are prefixed by v_, e.g., v_empno.
  • All formal parameters declared in a procedure or function definition are prefixed by p_, e.g., p_empno.
  • Column names and table names don't have any special prefix conventions, e.g., column empno in table emp.