作者:fbysss
msn:jameslastchina@hotmail.com
blog:blog.csdn.net/fbysss
声明:本文由fbysss原创,转载请注明出处
关键字:Oracle 同义词 SYNONYM
现象:create table JBPM_JOB时出错,提示name is used by existing object
而drop table 的时候,却报table or view does not exist.
这是一个很矛盾的现象。
排查:select * from user_objects where OBJECT_NAME =‘JBPM_JOB’—注意字符串区分大小写
发现OBJECT_TYPE的值是SYNONYM,而不是table。
至于为什么会这样,暂不研究。
解决办法:
drop Synonym JBPM_JOB;
然后再create table,OK。
----------------------------------------------------------------------------
相关知识:Oracle SYNONYM(同义词)
----------------------------------------------------------------------------
是一种映射关系,可以理解为表的一种固定别名
同义词的好处:建立一个同义词可以排除一个对象名字的限制
如果你的数据库有多个用户,USER_A要访问USER_B的TABLE1,只能使用USER_B.TABLE1
建一个同义词abc指向USER_B.TABLE1,那你就可以select * from abc了,而且public的同义词会直接出现在所有用户的面前,有时候可以方便开发
创建同义词:create public synonym synonym_name for user.table_name
删除同义词:drop public synonym synonym_name
查看当前用户的所有同义词:select * from user_synonyms;