Oracle:管理 date类型 interval 动态变化的分区:查询、删除

摘要:
--创建一个临时表以获取长类型:high_值droptablesyscom_tab_partition_temppurge的值;创建tableprm8_ user.syscom _ tab_分区_ temp(table_namevarchar2(30),分区_位置int,分区_名称varchar(30)),高值
-- 创建临时表,目的是获取long类型的:high_value 的值
drop table syscom_tab_partition_temp purge
;

create table prm8_user.syscom_tab_partition_temp (table_name varchar2(30),partition_position int,partition_name varchar(30),high_value clob, dt date )
;

-- 清理之前的临时数据
delete from syscom_tab_partition_temp a where a.table_name=upper('partition_table_name');
;

-- 获取partition表的分区信息
insert into syscom_tab_partition_temp(table_name,partition_position,partition_name,high_value)
select a.table_name,a.partition_position,a.partition_name,to_lob(a.high_value)
from user_tab_partitions  a
where a.table_name=upper('partition_table_name')
;

--特殊 date interval 类型表的 date值的处理
update syscom_tab_partition_temp
set dt=to_date(substr(trim(to_char(high_value)),11,19),'SYYYY-MM-DD HH24:MI:SS')
where table_name=upper('partition_table_name')
;

--获取删除脚本
select p.*
       ,'alter table ' || p.table_name || ' drop partition ' || p.partition_name || ';' as d_sql
from syscom_tab_partition_temp p
where p.table_name=upper('partition_table_name')
     and p.partition_name<>upper('PTN_DUMMY')
     and p.dt<trunc(sysdate - 180 ) -- 180 day
order by p.partition_position desc
;

--再次查询
select a.table_name,a.partition_position as pos,a.partition_name,a.interval,a.high_value,a.tablespace_name,a.num_rows,a.blocks,a.last_analyzed,a.empty_blocks,a.composite,a.subpartition_count,a.parent_table_partition
from user_tab_partitions  a
where a.table_name=upper('partition_table_name')
      and a.interval=upper('yes')
order by a.table_name,a.partition_position
;


--更新统计信息
begin
      dbms_stats.gather_table_stats(ownname => user,tabname => 'partition_table_name',cascade => true);
end;
/

免责声明:文章转载自《Oracle:管理 date类型 interval 动态变化的分区:查询、删除》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇EMQX_AUTH_HTTP 插件使用指南Swift实战-小QQ(第1章):QQ登录界面下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

oracle默认管理员的帐号和密码以及密码修改和解除锁定

安装 ORACLE 时,若没有为下列用户重设密码,则其默认密码如下: 用户名 / 密码 登录身份 说明 sys/change_on_install SYSDBA 或 SYSOPER 不能以 NORMAL 登录,可作为默认的系统管理员 system/manager SYSDBA 或 NORMAL 不能以 SYSOPER 登录,可作为默认的系统管理...

ORACLE 12C PDB部分功能测试

许久没关注Oracle,没有想到Oracle12c都出来,不枉我注册的Oracle12c的Email。 ORACLE 12C中提出来CDB和PDB的概念,对于ORACLE的数据库来说,确实是一个新东西,他们可以分别理解为容器和插件(PDB插入在CDB中),CDB的管理和传统数据库区别不大,本篇文章对PDB的部分操作进行了简单说明(创建PDB,OPEN P...

win10 oracle11g Navicat 连接记录

一. 安装oracle11g服务端 1. 安装参考 https://www.cnblogs.com/liuhongfeng/p/5267549.html 2. 安装好后 oracle默认localhost访问的 需要再进行配置 服务端配置 tnsnames.ora 及 listener.ora 我的目录在 d:/app/Administrator/prod...

重现Oracle数据库Hang住的情况

What is the Oracle Diagnostic Methodology (ODM)? [ID 312789.1] ODM TEST: 查询语句: select to_number(addr,'xxxxxxxxxxxxxxxx') from v$latch_parent where name='process allocation'; selec...

Oracle 中session和processes的初始设置

http://blog.163.com/succu/blog/static/193917174201252911727149/ 1.sessions 在初始化参数所设定的限制中,最为人所知的估计就是sessions和processes Sessions 参数指定了一个 Instance中能够同时存在的sessions数量,或者说,就是能同时登陆到数据库的...

ORACLE中查询第n条到第m条的数据记录的方法

一、经过测试,下面的方法通过: SELECT * FROM( SELECT 表名.*, ROWNUM AS CON FROM 表名 WHERE ROWNUM <= M AND 其它查询条件ORDER BY排序条件)WHERE CON >=N; 二、参考其它网上的方法 SQL/Oracle取出第 m 条到第 n 条记录的方法用一句SQL取出第 m...