【发布时间】:2014-06-05 05:29:28
【问题描述】:
我正在准备 SQL Expert 认证,我发现一个问题,它说,这是正确的选项。而且,在四个选项中,一个选项是A table and a synonym can have the same name in the same schema。
而且,据我所知,在 oracle 中,我们创建的任何东西都被视为对象,这意味着当我们说 create synonym 时,这意味着我们正在创建新对象。并在 Oracle 或任何数据库 AFAIK 中不允许在相同的模式中创建相同的对象。
即使Burleson 说
您可以拥有同名的公共和私人同义词。实际上, 您可以在 SCOTT 中有一个名为 EMP 的公共和私有同义词 架构并在同一架构中有一个名为 EMP 的表
所以,我试过了。
create synonym emp for scott.emp
它显示了一些错误object already exist
然后我尝试了
create public synonym emp for scott.emp.
而且,得到了同样的错误。所以,任何人都请分享一些关于同义词的知识。我们可以在同一架构中创建具有相同名称的同义词吗?
【问题讨论】:
-
:对我有用!!! ,我有一个疑问,你试过
create public synonym scott.emp for scott.emp还是create public synonym emp for scott.emp,意思是你把schema_name放在同义词之前吗? -
没有。我刚试过,我帖子里提到的
-
公共同义词不能有任何模式名称 - 这就是它是公共的原因!
-
将 B 的域添加到 Google 个人阻止列表的另一个原因。