解决方法
我不知道有任何oracle实用程序或函数来执行此操作.您可以在DBA_TAB_PARTITIONS或ALL_TAB_PARTITIONS视图中找到编写自己的程序所需的信息,类似于以下内容:
SELECT TABLE_OWNER,TABLE_NAME,PARTITION_NAME,HIGH_VALUE FROM SYS.DBA_TAB_PARTITIONS WHERE TABLE_OWNER = strSchema AND TABLE_NAME = strTable
其中strSchema和strTable是您感兴趣的模式和表.HIGH_VALUE是一个LONG字段,其中包含调用TO_DATE函数的代码(假设您的表在日期字段上分区);您需要将HIGH_VALUE分配给LONG字段,然后将LONG分配给VARCHAR2,以便在某个地方获取值,其方式类似于:
lHigh_value LONG; strDate_clause VARCHAR2(100); lHigh_value := aRow.HIGH_VALUE; strDate_clause := lHigh_value;
然后,您只需从DATE子句中提取相应的字段,以确定需要删除的分区.
分享和享受.