暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 公共同义词和普通表的名称空间的怪异行为

askTom 2017-03-07
287

问题描述

嗨,汤姆

很抱歉,几天前我提出了一个类似的问题,但我误解了这个问题。所以我在这里再次正确地描述。


我目前正在使用oracle中的同义词,并发现以下事实:

SQL> 为myschema.mytable创建公共同义词mysynonym;
创建同义词。

SQL> create table myschema.mysynonym(a int);
// 与公共同义词同名的表
第1行的错误:
ORA-00955: 名称已被现有对象使用


根据这里描述的Oracle的doc,这是相当合理的:

https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_7001.htm

是的,这是相当合理的,预计。但是我发现 “副范思哲” 在这里并不成立:

SQL> create table myschema.mysynonym(a int);
创建的表。// 首先创建一个名称为 “mysynonym” 的表

SQL> 为myschema.mytable创建公共同义词mysynonym;

创建同义词。
// 然后创建具有相同表名称的公共同义词。
// 哇,成功。恕我直言,它应该失败了。



你能帮我找出原因吗?

非常感谢。

专家解答

抱歉,我无法重现您的错误

SQL> create public synonym mysynonym for mcdonac.mytable;

Synonym created.

SQL> create table mcdonac.mysynonym(a int);

Table created.

复制


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论