在oracle 11G中自动删除最旧的分区

前端之家收集整理的这篇文章主要介绍了在oracle 11G中自动删除最旧的分区前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果分区超过三个月,我需要从间隔分区表中删除分区.

是否有oracle实用程序/函数来执行此操作?或者如果没有,如何实现这个?请指导我.

Database version: Oracle 11G

解决方法

我不知道有任何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子句中提取相应的字段,以确定需要删除的分区.

分享和享受.

猜你在找的Oracle相关文章