问题描述
嗨,汤姆
我目前正在使用oracle中的同义词,并发现以下事实:
SQL> 为myschema.mytable创建公共同义词mysynonym;
创建同义词。
SQL> create table myschema.mytable(a int);
第1行的错误:
ORA-00955: 名称已被现有对象使用
根据这里描述的Oracle的doc,这是相当合理的:
https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_7001.htm
是的,这是相当合理的,预计。但是我发现 “副范思哲” 在这里并不成立:
SQL> create table myschema.mytable(a int);
创建的表。//先建表
SQL> 为myschema.mytable创建公共同义词mysynonym;
创建同义词。
// 然后创建具有相同表名称的公共同义词。
// 哇,成功。恕我直言,它应该失败了。
你能帮我找出原因吗?
非常感谢。
我目前正在使用oracle中的同义词,并发现以下事实:
SQL> 为myschema.mytable创建公共同义词mysynonym;
创建同义词。
SQL> create table myschema.mytable(a int);
第1行的错误:
ORA-00955: 名称已被现有对象使用
根据这里描述的Oracle的doc,这是相当合理的:
https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_7001.htm
是的,这是相当合理的,预计。但是我发现 “副范思哲” 在这里并不成立:
SQL> create table myschema.mytable(a int);
创建的表。//先建表
SQL> 为myschema.mytable创建公共同义词mysynonym;
创建同义词。
// 然后创建具有相同表名称的公共同义词。
// 哇,成功。恕我直言,它应该失败了。
你能帮我找出原因吗?
非常感谢。
专家解答
我们在数据库中有几个名称空间,它们定义了允许名称重叠的位置,以及不重叠的位置。
因此,只要您在名称空间内具有唯一性,就可以了。公共同义词只是特殊用户 “公共” 拥有的对象,因此
公共的。我的同义词
公共。我的表
我的模式。我的表
都可以共存得很好。
SQL> select distinct namespace, object_type from dba_objects 2 order by 1,2; NAMESPACE OBJECT_TYPE ---------- ----------------------- 1 CHAIN 1 DESTINATION 1 FUNCTION 1 INDEXTYPE 1 JAVA CLASS 1 JOB 1 JOB CLASS 1 LIBRARY 1 OPERATOR 1 PACKAGE 1 PROCEDURE 1 PROGRAM 1 SCHEDULE 1 SCHEDULER GROUP 1 SEQUENCE 1 SYNONYM 1 TABLE 1 TABLE PARTITION 1 TABLE SUBPARTITION 1 TYPE 1 VIEW 1 WINDOW 2 PACKAGE BODY 2 TYPE BODY 3 TRIGGER 4 INDEX 4 INDEX PARTITION 5 CLUSTER 8 LOB 8 LOB PARTITION 9 DIRECTORY 10 QUEUE 13 JAVA SOURCE 14 JAVA RESOURCE 19 MATERIALIZED VIEW 20 DIMENSION 21 CONTEXT 23 RULE SET 24 CONSUMER GROUP 24 RESOURCE PLAN 25 XML SCHEMA 32 JAVA DATA 36 RULE 38 EVALUATION CONTEXT 51 UNDEFINED 52 UNDEFINED 64 EDITION 88 UNDEFINED 92 SQL TRANSLATION PROFILE 93 UNIFIED AUDIT POLICY DATABASE LINK 51 rows selected.复制
因此,只要您在名称空间内具有唯一性,就可以了。公共同义词只是特殊用户 “公共” 拥有的对象,因此
公共的。我的同义词
公共。我的表
我的模式。我的表
都可以共存得很好。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle DataGuard高可用性解决方案详解
孙莹
586次阅读
2025-03-26 23:27:33
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
541次阅读
2025-04-15 17:24:06
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
449次阅读
2025-04-18 14:18:38
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
437次阅读
2025-04-08 09:12:48
墨天轮个人数说知识点合集
JiekeXu
436次阅读
2025-04-01 15:56:03
Oracle SQL 执行计划分析与优化指南
Digital Observer
436次阅读
2025-04-01 11:08:44
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
434次阅读
2025-04-22 00:20:37
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
411次阅读
2025-04-22 00:13:51
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
401次阅读
2025-04-20 10:07:02
Oracle 19c RAC更换IP实战,运维必看!
szrsu
384次阅读
2025-04-08 23:57:08