限定符是指定作为限定条件对象的实体的所有者或上下文的名称。将限定对象指定为限定符名称,后跟一个没有中间空格的点,再后跟没有中间空格的所限定对象的名称。此语法称为点表示法。
以下是限定对象的语法。
qualifier. [ qualifier. ]... object
qualifier 是对象所有者的名称。object 是属于 qualifier 的实体的名称。可以存在限定条件链,其中前面的限定符拥有后续限定符和对象标识的实体。
几乎任何标识符均可限定。标识符限定的内容取决于标识符表示的内容及其使用上下文。
限定条件的一些示例如下:
- 由其所属 schema 限定的存储过程和函数名称,例如,
schema_name.procedure_name(...)
。 - 由其所属 schema 限定的触发器名称,例如,
schema_name.trigger_name
。 - 由其所属表限定的列名称,例如,
emp.empno
。 - 由其所属 schema 限定的表名称,例如,
public.emp
。 - 由表和 schema 限定的列名称,例如,
public.emp.empno
。
通常来说,只要名称在 SPL 语句的语法中显示,也可以使用其限定名称。通常,仅当名称存在一些歧义时,才会使用限定的名称。例如,如果从程序内调用的两个存储过程具有相同名称但属于两个不同的 schema,或者同一程序内的表列和 SPL 变量使用相同的名称。
应尽可能避免使用限定的名称。在本章中,采用以下约定来避免命名冲突:
- SPL 程序声明部分中声明的所有变量均带有 v_ 前缀。例如,
v_empno
。 - 在存储过程或函数定义中声明的所有形参均带有 p_ 前缀。例如,
p_empno
。 - 列名称和表名称没有任何特殊的前缀约定。例如,表 emp 中的列
empno
。