-- Create table create table TLCB_MON_LINUX ( sdate DATE,ip VARCHAR2(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,发我和小小,-- Create table create table ESB2_TRANS_LOG ( esbflowno VARCHAR2(100) not null,flowstepid VARCHAR2(3) not null,locationid VARCHAR2(20) not null,channelid VARCHAR2(40),serviceid VARCHAR2(40),respstatus CHAR(1),respcode VARCHAR2(30),respmsg VARCHAR2(512),operstamp TIMESTAMP(3) default systimestamp not null,logicsystem VARCHAR2(40),realsystem VARCHAR2(40),trans_date DATE default sysdate not null,loop VARCHAR2(20) ) partition by range (TRANS_DATE) ( partition ESB2_TRANS_LOG_170801 values less than (TO_DATE(' 2017-08-02 00:00:00','NLS_CALENDAR=GREGORIAN')) ) create index IDX_ESB2_TRANS_LOG on ESB2_TRANS_LOG (ESBFLOWNO,FLOWSTEPID); select owner,index_name,table_name,PARTITIONED from dba_indexes where table_name=upper('esb2_trans_log');sql> OWNER INDEX_NAME TABLE_NAME PAR ------------------------------ -------------------- ------------------------------ --- TLCBUSER IDX_ESB2_TRANS_LOG ESB2_TRANS_LOG NO sql> create index IDX_ESB2_TRANS_LOG on ESB2_TRANS_LOG (ESBFLOWNO,FLOWSTEPID) local; Index created. sql> select owner,PARTITIONED from dba_indexes where table_name=upper('esb2_trans_log'); OWNER INDEX_NAME TABLE_NAME PAR ------------------------------ -------------------- ------------------------------ --- TLCBUSER IDX_ESB2_TRANS_LOG ESB2_TRANS_LOG YES sql> select object_name,subobject_name,object_id,data_object_id,object_type from user_objects where object_name='IDX_ESB2_TRANS_LOG'; OBJECT_NAME SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE ------------------------------ ------------------------------ ---------- -------------- ------------------- IDX_ESB2_TRANS_LOG 110263 INDEX IDX_ESB2_TRANS_LOG ESB2_TRANS_LOG_170801 110264 110264 INDEX PARTITION 添加新的分区: alter table ESB2_TRANS_LOG add partition ESB2_TRANS_LOG_170802 values less than (TO_DATE(' 2017-08-03 00:00:00','NLS_CALENDAR=GREGORIAN')) sql> col object_name format a30 sql> select object_name,object_type from user_objects where object_name='IDX_ESB2_TRANS_LOG'; OBJECT_NAME SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE ------------------------------ ------------------------------ ---------- -------------- ------------------- IDX_ESB2_TRANS_LOG 110263 INDEX IDX_ESB2_TRANS_LOG ESB2_TRANS_LOG_170801 110264 110264 INDEX PARTITION IDX_ESB2_TRANS_LOG ESB2_TRANS_LOG_170802 110266 110266 INDEX PARTITION 添加主键: sql> alter table ESB2_TRANS_LOG add primary key (esbflowno) using index local; alter table ESB2_TRANS_LOG add primary key (esbflowno) using index local * ERROR at line 1: ORA-14039: 分区列必须构成 UNIQUE 索引的关键字列子集 Oracle 不支持在分区表上创建主键时不包含分区列 不分区就可以: sql> alter table ESB2_TRANS_LOG add primary key (esbflowno); Table altered.
原文地址:https://www.jb51.cc/oracle/208172.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。