限定符是指定作为限定条件对象的实体的所有者或上下文的名称。将限定对象指定为限定符名称,后跟一个没有中间空格的点,再后跟没有中间空格的所限定对象的名称。此语法称为点表示法。

以下是限定对象的语法。

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