概述
在我的开源数据库迁移项目
Flyway中,我有一个功能可以清除当前数据库模式中的所有对象,而不会删除模式本身.
典型的实现如下:
>列出所有对象
>为这些对象生成drop语句
Oracle Spatial Indexes让我感到非常悲伤.
如何可靠地枚举它们以生成DROP INDEX xyz语句?
注意:这必须适用于XE,10g和11g.必须消除MDSYS模式中的所有引用.
我目前的解决方案如下:
在XE上:
>从mdsys.user_sdo_geom_metadata删除
> DELETE FROM mdsys.sdo_index_metadata_table WHERE sdo_index_owner = USER
> SELECT object_type,object_name FROM user_objects WHERE object_type =’TABLE’
> DROP * table_name * CASCADE CONSTRAINTS PURGE / *表示所有表* /
在Oracle 10g上:
>从mdsys.user_sdo_geom_metadata删除
> SELECT object_type,object_name FROM user_objects WHERE object_type =’TABLE’和object_name不喜欢’MDRT _%$’
> DROP * table_name * CASCADE CONSTRAINTS PURGE / *表示所有表* /
10g似乎级联删除MDSYS.sdo_index_metadata_table中的元数据以及删除空间索引表(MDRT_1234 $等).
XE没有.
10g和XE都不会级联MDSYS.user_sdo_geom_metadata中的元数据删除
最后
以上就是苹果手机为你收集整理的oracle如何删除全部索引,sql – 如何在Oracle中可靠地列出和删除所有空间索引?...的全部内容,希望文章能够帮你解决oracle如何删除全部索引,sql – 如何在Oracle中可靠地列出和删除所有空间索引?...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复