/*查询原始数据条数*/
SELECT count(1) FROM MESSAGE;
/*创建临时表,按30天自动分区,从20141201号开始分区*/
CREATE TABLE TMP_MASSAGES_A PARTITION BY RANGE (INPUT_DATE) INTERVAL (30) (
PARTITION p_month_1
VALUES LESS THAN ('20141201')
) AS
SELECT *
FROM MESSAGE;
/*将原始表重命名*/
alter table MESSAGE rename to message_bak ;
/*将已分区的临时表重命名为正式表名*/
alter table tmp_massages_a rename to MESSAGE;
/*添加字段默认值*/
ALTER TABLE MESSAGE MODIFY MSG_CODE DEFAULT 0 PRIMARY KEY;
ALTER TABLE MESSAGE MODIFY MSG_CODE DEFAULT 0 ;
ALTER TABLE MESSAGE MODIFY MSG_STATUS DEFAULT ' ' ;
ALTER TABLE MESSAGE MODIFY MSG_FROM_CODE DEFAULT ' ' ;
ALTER TABLE MESSAGE MODIFY MSG_FROM_NAME DEFAULT ' ';
ALTER TABLE MESSAGE MODIFY MSG_TITLE DEFAULT ' ' ;
ALTER TABLE MESSAGE MODIFY MSG_CONTENT DEFAULT ' ';
ALTER TABLE MESSAGE MODIFY BOND_ID DEFAULT ' ';
ALTER TABLE MESSAGE MODIFY BOND_CODE DEFAULT ' ';
ALTER TABLE MESSAGE MODIFY BOND_NAME DEFAULT ' ';
ALTER TABLE MESSAGE MODIFY REC_OPER_ID DEFAULT 0 ;
ALTER TABLE MESSAGE MODIFY INPUT_DATE DEFAULT to_number(to_char(sysdate, 'yyyymmdd'));
ALTER TABLE MESSAGE MODIFY INPUT_TIME DEFAULT to_number(to_char(sysdate, 'hh24miss'));
ALTER TABLE MESSAGE MODIFY INPUT_OPER_ID DEFAULT 0;
ALTER TABLE MESSAGE MODIFY INPUT_OPER_NAME DEFAULT ' ';
ALTER TABLE MESSAGE MODIFY UPDATE_DATE DEFAULT to_number(to_char(sysdate, 'yyyymmdd'));
ALTER TABLE MESSAGE MODIFY UPDATE_TIME DEFAULT to_number(to_char(sysdate, 'hh24miss'));
/*验证数据*/
SELECT count(1) FROM MESSAGE;
/*删除临时数据表*/
truncate table message_bak ;
drop table message_bak ;
/*重建索引*/
CREATE INDEX rec_oper_id_massages_a
ON MESSAGE (REC_OPER_ID DESC)
/
CREATE INDEX MASSAGES_A_INPUT_DATE_INDEX
ON MESSAGE (INPUT_DATE)
/
create index IDX_MSG_1001_MESSAGE
on MESSAGE (INPUT_DATE, MSG_STATUS, REC_OPER_ID)
/