带有相同名称的同义词

在兼容 ANSI 的数据库中,owner.synonym 组合在所有同义词、表、视图以及序列中必须是唯一的。在引用不是您自己的同义词时必须指定 owner ,如下所示:
CREATE SYNONYM emp FOR accting.employee  

在不兼容 ANSI 的数据库中,两个公共同义词不能有相同的标识符,而同义词的标识符也必须在相同数据库中的表、视图和序列的名称中是唯一的。

专用同义词的 owner.synonym 组合必须在数据库内所有同义词中是唯一的。即,同一数据库中可以存在多个带有相同名称的同义词,但是这些同义词中的每一个都必须归不同用户所有。同一用户不能同时创建名称相同的专用和公共同义词。例如,以下代码生成一个错误:
CREATE SYNONYM our_custs FOR customer;
        CREATE PRIVATE SYNONYM our_custs FOR cust_calls;-- ERROR!!!

只有在两个同义词所有者不同的情况下,才能用与公共同义词相同的名称声明专用同义词。如果拥有一个专用同义词且存在带有相同名称的公共同义词,则数据库服务器未限定的名称解析诶专用同义词。(在这种情况下,您必须指定 owner.synonym 以引用公共同义词)如果在专用同义词和另一用户的公共同义词都有相同的标识符时,将 DROP SYNONYM 与未限定的同义词标识符一起使用,则仅删除专用同义词。如果重复相同的 DROP SYNONYM 语句,则数据库服务器删除公共同义词。