加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 站长百科 > 正文

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

发布时间:2021-02-27 02:45:56 所属栏目:站长百科 来源:网络整理
导读:如果分区超过三个月,我需要从间隔分区表中删除分区. 是否有oracle实用程序/函数来执行此操作?或者如果没有,如何实现这个?请指导我. Database version: Oracle 11G 解决方法 我不知道有任何oracle实用程序或函数来执行此操作.您可以在DBA_TAB_PARTITIONS或A

如果分区超过三个月,我需要从间隔分区表中删除分区.

是否有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子句中提取相应的字段,以确定需要删除的分区.

分享和享受.

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读