今早一来,同事说分区表无法分区了
先手动分区,alter table <tablename> add partition <分区名称> values less than(to_date('《时间》','yyyy/mm/dd')) (我们使用的是范围分区表)
查后发现分区表中有几个分区与我们自己定义的分区命名规则有些不同,这样可能造成原来写的自动增加分区的作业无法完成;
可是分区表原表已经删除,只剩下了未删除的分区(user_tab_partitions的table_name字段值变成了 BIN$.......)
查过资料后才知道有一个回收站,
恢复已经进入回收站的数据表:flashback table 《原始表名》 to before drop rename to 《恢复后的新表名》。也可以使用 flashback table 《原始表名》 to before drop。2者的区别是一个是重新建立一个表名,一个恢复后还是原来的表名。
恢复数据表后删除表分区、数据表即可。
额外的知识点
1.删除某个表不进入回收站 drop table tableName purge()
2.删除回收站的某个表信息 purge table tableName 或者删除索引 purge index origenal_indexName
3.SELECT * FROM user_recyclebin t;
4.删除回收站所有东西:PURGE recyclebin;
当数据表剩余最后一个分区时,删除表的时候使用的是 drop table tableName purge 删除的。