加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

oracle 表或者视图不存在,名称已由现有对象使用,可是又查询到

发布时间:2020-12-12 15:02:06 所属栏目:百科 来源:网络整理
导读:问题是这样的, 因为 有一个 表再 bms 的用户下, 目前要将其 复制迁移到 HR 用户下。 create table CRM_OU_USER_LOGIN_HI as SELECT * FROM BMS.CRM_OU_USER_LOGIN_HI ; 执行上面的语句 出错,不是表或者视图不存在就是 现有对象已使用。 可是 SELECT * FRO

问题是这样的, 因为 有一个 表再 bms 的用户下, 目前要将其 复制迁移到 HR 用户下。

create table CRM_OU_USER_LOGIN_HI as SELECT * FROM BMS.CRM_OU_USER_LOGIN_HI ;

执行上面的语句 出错,不是表或者视图不存在就是 现有对象已使用。 可是

SELECT * FROM  HR.CRM_OU_USER_LOGIN_HI
    
    SELECT * FROM BMS.CRM_OU_USER_LOGIN_HI

都是可以查询到数据了,

或者查询同义词

SELECT * FROM SYS.ALL_SYNONYMS WHERE SYNONYM_NAME='CRM_OU_USER_LOGIN_HI'
SELECT * FROM ALL_TABLES WHERE  TABLE_NAME='CRM_OU_USER_LOGIN_HI' AND OWNER='HR'

可是HR 用户下 确实是不存在该表的。。。 在bms 下面是有表的。。。 麻烦纠结了半天,以为是 视图或临时表,可是查询 发现并没有 。。。 去百度了 一通 ,才 明白 原来是 之前为 HR 用户创建了 该表的 同义词

-- 同义词 
  	select a.OBJECT_type,a.* from user_objects a
		where a.OBJECT_NAME = 'CRM_OU_USER_LOGIN_HI'
		
			select a.OBJECT_type,a.* from user_objects a
		where a.OBJECT_NAME = 'HR_EFF_LEADER'

执行上面的结果,发现 类型是 同义词。。。 如果表没有同义词的就是 类型是 table 类型。。。 果然是 同义词的问题。。。

创建表时,如果报ORA-00955名称已由现有对象使用 但select时候,又查不到。 还有可能。同义词重名了。 在Synonyms(Oracle数据库,PL/SQL Developer 工具)条目下。 查看是否存在同义词。 有的话将同义词删除就可以了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读