CANT创建或删除SYNONYM

时间:2017-02-14 17:55:27

标签: sql oracle

我有问题。当我尝试创建具有我的案例所需的特定名称的私有同义词时(它应该是该名称 - 没有别的) - 我收到了与该名称alredy同义的错误消息。

查询:

CREATE SYNONYM FZ223_PPA.PURCHASE FOR FZ223_PURCHASE.PURCHASE;

错误:

Error starting at line : 1 in command -
CREATE SYNONYM FZ223_PPA.PURCHASE FOR FZ223_PURCHASE.PURCHASE
Error report -
SQL Error: ORA-00955: имя уже задействовано для существующего объекта
00955. 00000 -  "name is already used by an existing object"
*Cause:    
*Action:

但我在试图创建synonyn的模式中找不到该名称的任何同义词。例如,我尝试了以下查询

select count(*) from dba_synonyms where owner = 'FZ223_PPA' and synonym_name = 'PURCHASE'

但它返回

enter image description here

最令人失望的是当我尝试删除具有相同名称的模式时 - oracle给了我错误并且'说'我尝试删除的模式不存在。

查询:

DROP SYNONYM FZ223_PPA.PURCHASE

错误:

Error starting at line : 1 in command -
DROP SYNONYM FZ223_PPA.PURCHASE
Error report -
SQL Error: ORA-01434: отменяемый личный синоним пользователя не существует
01434. 00000 -  "private synonym to be dropped does not exist"
*Cause:    
*Action:

我无法理解为什么以及如何解决它。我试图找到问题的解决方案,但一无所获。请帮帮我!

2 个答案:

答案 0 :(得分:2)

如果已存在具有架构名称和对象名称foo.bar的视图或表,则无法创建同义词foo.bar。就这样。使用具有相同模式和对象名称的同义词与他们指向的对象毫无意义,真的......

如果你实际上需要一个同义词,你需要在另一个模式中创建它 - 你的所有者可能不是,所以DBA必须授予你在不同模式下创建对象的权限架构。

希望这会有所帮助......

答案 1 :(得分:-2)

ORA-01434:要删除的私有同义词不存在

解决方案: -

  

DROP PUBLIC SYNONYM SYNONYM_NAME;