我有问题。当我尝试创建具有我的案例所需的特定名称的私有同义词时(它应该是该名称 - 没有别的) - 我收到了与该名称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'
但它返回
最令人失望的是当我尝试删除具有相同名称的模式时 - 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:
我无法理解为什么以及如何解决它。我试图找到问题的解决方案,但一无所获。请帮帮我!
答案 0 :(得分:2)
如果已存在具有架构名称和对象名称foo.bar
的视图或表,则无法创建同义词foo.bar
。就这样。使用具有相同模式和对象名称的同义词与他们指向的对象毫无意义,真的......
如果你实际上需要一个同义词,你需要在另一个模式中创建它 - 你的所有者可能不是,所以DBA必须授予你在不同模式下创建对象的权限架构。
希望这会有所帮助......
答案 1 :(得分:-2)
ORA-01434:要删除的私有同义词不存在
解决方案: -
DROP PUBLIC SYNONYM SYNONYM_NAME;