日期:2014-05-17  浏览次数:20788 次

只读表空间为什么可以drop表?
大家好,
    我创建了一个只读表空间,测试了一下,不能增,删,改表数据,但可以drop表,但又不能create表?
请问这是什么原因,只读表空间其对应的数据文件的SCN值不是不会变化的吗?但又何又能drop表的,drop表后,其SCN值也不会变化,请问这是什么原因?
----
待复,感谢!

------解决方案--------------------
数据库的结构信息不会存放在你的“只读表空间”上。

你那个表空间是放数据的。
------解决方案--------------------
drop作用于元数据,即存于system表空间的数据字典
当然,drop同时也会删数据,而且是全删
------解决方案--------------------
我的理解是这样的:
  只读是表空间的属性,是创建表空间时定义的。
 表空间能不能被删除,这得看执行操作的用户。表空间的所有者肯定能删除表空间,其他的用户得有权限才行。
  
------解决方案--------------------
将一个表空间的状态改为只读时,Oracle会产生检查点。可以删除只读表空间中的对象,如表和索引,因为删除对象的命令是DDL语句,它们只修改数据字典而不是数据文件,数据字典位于SYSTEM表空间中,SYSTEM表空间是读/写状态,所以修改数据字典表操作当然被允许啦
   设为只读的意义在于不允许对某些历史表的数据进行更改,删除,插入操作(即不允许DML操作)。