加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle range 分区表

发布时间:2020-12-12 14:53:17 所属栏目:百科 来源:网络整理
导读:-- Create tablecreate table TLCB_MON_LINUX( sdate DATE,ip CHAR(20),processcpu CLOB,processmem CLOB,port CLOB,countprocess VARCHAR2(100),countport VARCHAR2(100))partition by range (SDATE)( partition P20170524 values less than (TO_DATE(' 201
-- Create table
create table TLCB_MON_LINUX
(
  sdate        DATE,ip           CHAR(20),processcpu   CLOB,processmem   CLOB,port         CLOB,countprocess VARCHAR2(100),countport    VARCHAR2(100)
)
partition by range (SDATE)
(
  partition P20170524 values less than (TO_DATE(' 2017-05-25 00:00:00','SYYYY-MM-DD HH24:MI:SS','NLS_CALENDAR=GREGORIAN'))
    tablespace USERS
    pctfree 10
    initrans 1
    maxtrans 255,partition P20170525 values less than (TO_DATE(' 2017-05-26 00:00:00','NLS_CALENDAR=GREGORIAN'))
    tablespace USERS
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
      initial 8M
      next 1M
      minextents 1
      maxextents unlimited
    )
);


select to_char(min(sdate)),to_char(max(sdate)) from tlcb_mon_linux partition (P20170526);
   	MIN(SDATE)	        MAX(SDATE)
1	2017-5-25 8:35:03	2017-5-25 8:40:17


SQL> select to_char(min(sdate)),to_char(max(sdate)) from tlcb_mon_linux partition (P20170525);

TO_CHAR(MIN(SD TO_CHAR(MAX(SD
-------------- --------------



添加分区脚本:

SQL> set linesize 200
SQL> select * from nls_database_parameters where parameter='NLS_CHARACTERSET'; 

PARAMETER		       VALUE
------------------------------ ----------------------------------------------------------------------------------------------------------------------------------------------------------------
NLS_CHARACTERSET	       AL32UTF8

[oracle@yyjk ~]$ cat get_date 
export NLS_LANG="american_america.ZHS16GBK"
echo " set colsep |;
    set echo off;
    set feedback off;
    set heading off;
    set pagesize 0;
    set termout off;
    set trimout on;
    set trimspool on;
    set linesize 3000;
    spool ./date.txt1;
    select   to_char((to_date('$1','YYYY-MM-DD')$2),'YYYY-MM-DD')  from  dual  where  rownum=1;
    "  | sqlplus tlcbuser/tlcbuser >/dev/null
    if [ -f ./date.txt1 ]
    then
        cat ./date.txt1 | grep -v "^SQL>" | tr -d ' ' >./date.txt
        rm -f ./date.txt1
    else
        exit
    fi
    date=`cat ./date.txt`
    rm -f ./date.txt
echo $date



[oracle@yyjk ~]$ cat a1.sh
date=`echo $1 | tr -d '-'`
date1=`echo $2 | tr -d '-'`
date2=`echo $1`
date_end=`./get_date $2 +1 | tr -d '-'`
while :
    do
     xdate=`./get_date $date -1 | tr -d '-'`
     echo "alter table tlcb_mon_linux add partition p$xdate values less than (to_date('$date2','yyyy-mm-dd'));"
     date2=`./get_date $date +1`
     date=`echo $date2 | tr -d '-'`
     if [ "$date" = "$date_end" ]
        then 
        exit
fi
done

[oracle@yyjk ~]$ cat a1.sql  | head -10
alter table tlcb_mon_linux add partition p20170526 values less than (to_date('2017-05-27','yyyy-mm-dd'));
alter table tlcb_mon_linux add partition p20170527 values less than (to_date('2017-05-28','yyyy-mm-dd'));
alter table tlcb_mon_linux add partition p20170528 values less than (to_date('2017-05-29','yyyy-mm-dd'));
alter table tlcb_mon_linux add partition p20170529 values less than (to_date('2017-05-30','yyyy-mm-dd'));
alter table tlcb_mon_linux add partition p20170530 values less than (to_date('2017-05-31','yyyy-mm-dd'));
alter table tlcb_mon_linux add partition p20170531 values less than (to_date('2017-06-01','yyyy-mm-dd'));
alter table tlcb_mon_linux add partition p20170601 values less than (to_date('2017-06-02','yyyy-mm-dd'));
alter table tlcb_mon_linux add partition p20170602 values less than (to_date('2017-06-03','yyyy-mm-dd'));
alter table tlcb_mon_linux add partition p20170603 values less than (to_date('2017-06-04','yyyy-mm-dd'));
alter table tlcb_mon_linux add partition p20170604 values less than (to_date('2017-06-05','yyyy-mm-dd'));

(编辑:李大同)

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

    推荐文章
      热点阅读