=======================================================================
当我执行select * from tab;出现的如图的问题,实际上存在数据库的就4张表,但却出现了那么多奇怪的表名
而且用for update做删除时
求解决方案
------解决方案--------------------
这些表都是回收站的表,
可以用 purge recyclebin 清除回收站
drop table 时,在后面加上purge 可直接彻底清除,不进回收站
------解决方案--------------------
根据你的截图,tab应该是一个视图,不是一个表。
更新视图有以下限制:
键值保存表
如果连接视图中的一个“基表的键”(主键、唯一键)在它的视图中仍然存在,
并且“基表的键”仍然是“连接视图中的键”(主键、唯一键);
即,某列在基表中是主键
------解决方案--------------------
唯一键,在视图中仍然是主键
------解决方案--------------------
唯一键
则称这个基表为“键值保存表”。
键值保存表中的列是可以更新的;
如果在定义连接视图时使用了WITH CHECK OPTION 选项,
则连接视图中的连接列(一般就是“共有列”)和基表中的“其他共有列”是“不可”更新的,
连接列和共有列之外的其他列是“可以”更新的
------解决方案--------------------
tab 是一个视图,定义的语句如下: 另外 tab 也是 oracle 的保留字
create or replace view sys.tab
(tname, tabtype, clusterid)
as
select o.name,
decode(o.type#, 2, 'TABLE', 3, 'CLUSTER',
4, 'VIEW', 5, 'SYNONYM'), t.tab#
from sys.tab$ t, sys."_CURRENT_EDITION_OBJ" o
where o.owner# = userenv('SCHEMAID')
and o.type# >=2
and o.type# <=5
and o.linkname is null
and o.obj# = t.obj# (+);
里面还包含你删除过的表