限定符是指定作為限定條件對象的實體的所有者或上下文的名稱。將限定對象指定為限定符名稱,后跟一個沒有中間空格的點,再后跟沒有中間空格的所限定對象的名稱。此語法稱為點表示法。

以下是限定對象的語法。

qualifier. [ qualifier. ]... object

qualifier 是對象所有者的名稱。object 是屬于 qualifier 的實體的名稱。可以存在限定條件鏈,其中前面的限定符擁有后續(xù)限定符和對象標(biāo)識的實體。

幾乎任何標(biāo)識符均可限定。標(biāo)識符限定的內(nèi)容取決于標(biāo)識符表示的內(nèi)容及其使用上下文。

限定條件的一些示例如下:

  • 由其所屬 schema 限定的存儲過程和函數(shù)名稱,例如,schema_name.procedure_name(...)
  • 由其所屬 schema 限定的觸發(fā)器名稱,例如,schema_name.trigger_name
  • 由其所屬表限定的列名稱,例如,emp.empno
  • 由其所屬 schema 限定的表名稱,例如,public.emp
  • 由表和 schema 限定的列名稱,例如,public.emp.empno

通常來說,只要名稱在 SPL 語句的語法中顯示,也可以使用其限定名稱。通常,僅當(dāng)名稱存在一些歧義時,才會使用限定的名稱。例如,如果從程序內(nèi)調(diào)用的兩個存儲過程具有相同名稱但屬于兩個不同的 schema,或者同一程序內(nèi)的表列和 SPL 變量使用相同的名稱。

應(yīng)盡可能避免使用限定的名稱。在本章中,采用以下約定來避免命名沖突:

  • SPL 程序聲明部分中聲明的所有變量均帶有 v_ 前綴。例如,v_empno
  • 在存儲過程或函數(shù)定義中聲明的所有形參均帶有 p_ 前綴。例如,p_empno
  • 列名稱和表名稱沒有任何特殊的前綴約定。例如,表 emp 中的列 empno