设为首页 - 加入收藏 PHP编程网 - PHP站长网 (http://www.52php.cn)- 电商,百科,编程,业界,移动互联,5G,云计算,站长网!
热搜: 专业 娱乐 服务 百度
当前位置: 首页 > 站长百科 > 正文

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

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

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

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

分享和享受.

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

推荐文章
热点阅读