表或视图不存在 但是明明存在_分享一个神奇现象--插入数据提示表不存在但却能查到这个表?...

概述

分享一个最近碰到的奇怪现象,数据库版本为11.2.0.1,插入数据提示表不存在但却能查到这个表,而且这个表所属用户就是他自己。


奇怪现象

这张表是真实存在的表,右键查看是可以看到表定义的。可以看到查询是可以查到结果的,但是插入表却提示表不存在。

fe71c75a2f207b5da6550c8ffc7b3f9d.png

插入语句:

INSERT INTO xxx ( ...)VALUES (...);
b027edb471b620bc5a38d11cbff8d80b.png

1、考虑权限问题

一开始以为是权限问题,所以试了下授权:

4ee34ede06f149efdb2bdf5eeab10a08.png

授权后还是不行


2、考虑同义词

看下会不会是其他表的同义词,

6d1de97a7ee4c150e59fc9d1eafc88a8.png

很明显这张表就是他自己。


3、查看对象

select OWNER,OBJECT_NAME,OBJECT_TYPE from dba_objects where OBJECT_NAME='S_EQUIPMENT';
f2055744a259b5efdb5bd93339440bfb.png

4、用sys用户执行插入动作

直接用sys用户插入这张表:

82784efdb7102206a84f9e1b08b43b75.png

5、加双引号看看

Oracle数据库对大小写敏感,创建新表时Oracle会自动将表名转换为大写。这样就使得查询存在小写字段表名的表时会默认查询全为大写的表,加双引号看下。

704b432ec8ce1751261a9e91c1e29992.png

6、物化视图日志?

最后放弃了,准备备份表重命名,然后发现有物化视图日志,误打误撞删了表上的物化视图日志后就可以了,也可以正常调度了。

drop materialized view log on XX;


问题来了,为什么物化视图日志会影响数据的插入?觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

7e78e579894c35d0ab25969b8592e68a.gif
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值