全文索引表的分区交换

主要过程如谭总书中的例子:

创建空的分区表

createtable t1(object_id int,object_name varchar2(60),created date)

partition by range(created)

(

partition p2009 values lessthan(to_date('2010-01-01','yyyy-mm-dd')),

partition p2010 values lessthan(to_date('2011-01-01','yyyy-mm-dd')),

partition pmax values less than(maxvalue)

);

创建本地分区索引:

createindex t1_idx on t1(object_name) indextypeis ctxsys.contextlocal;

创建一个结构与T1一样的临时表

createtable t1_temp asselect * from t1;

准备数据文件,格式如下:

"20","ICOL$","2009/6/3019:10:16"

"44","I_USER1","2009/6/3019:10:16"

"28","CON$","2009/6/3019:10:16"

"15","UNDO$","2009/6/3019:10:16"

"29","C_COBJ#","2009/6/3019:10:16"

"3","I_OBJ#","2009/6/3019:10:16"

"25","PROXY_ROLE_DATA$","2009/6/3019:10:16"

"39","I_IND1","2009/6/3019:10:16"

"51","I_CDEF2","2009/6/3019:10:16"

"26","I_PROXY_ROLE_DATA$_1","2009/6/3019:10:16"

"17","FILE$","2009/6/3019:10:16"

"13","UET$","2009/6/3019:10:16"

"9","I_FILE#_BLOCK#","2009/6/3019:10:16"

"41","I_FILE1","2009/6/3019:10:16"

"48","I_CON1","2009/6/3019:10:16"

"38","I_OBJ3","2009/6/3019:10:16"

"7","I_TS#","2009/6/3019:10:16"

"53","I_CDEF4","2009/6/3019:10:16"

"19","IND$","2009/6/3019:10:16"

"14","SEG$","2009/6/3019:10:16"

"6","C_TS#","2009/6/3019:10:16"

"42","I_FILE2","2009/6/3019:10:16"

"21","COL$","2009/6/3019:10:16"

"43","I_TS1","2009/6/3019:10:16"

"35","I_UNDO2","2009/6/3019:10:16"

"5","CLU$","2009/6/3019:10:16"

"23","PROXY_DATA$","2009/6/3019:10:16"

"24","I_PROXY_DATA$","2009/6/3019:10:16"

"36","I_OBJ1","2009/6/3019:10:16"

"46","I_COL2","2009/6/3019:10:16"

"37","I_OBJ2","2009/6/3019:10:16"

"54","I_CCOL1","2009/6/3019:10:16"

"16","TS$","2009/6/3019:10:16"

用plsql工具导入临时表中

指定要导入文件的位置和要导入的表

导入结束

查看临时表中的数据:

给临时表创建全文索引:

createindex t1_temp_idx ont1_temp(object_name) indextypeis ctxsys.context ;

查看全文索引的创建结果:

交换

altertable t1 exchangepartition p2009 withtable t1_temp includingindexeswithout

validation;

查看结果:

可见全文索引基表的数据已经变更到了T1 表的第一个分区中了,而临时表的全文索引数据为空。

你可能感兴趣的:(索引)