为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:windows
【CPU】:
【问题描述】*:如何从系统表中查询某个表的CONTEXT index索引定义的信息呢,查看user_ind_columns这张表没有存储CONTEXT index的信息
SELECT
'CREATE CONTEXT INDEX "' ||
CTI.NAME || '" ON "' ||
SF_GET_SCHEMA_NAME_BY_ID(O.SCHID)||'"."'||
SF_GET_TABLENAME_BY_ID(CTI.TABLEID) ||'"("'||
COL.NAME ||'") ' || ' LEXER ' ||
DECODE(WSEG_TYPE, 1, 'CHINESE_FP_LEXER;', 2, 'ENGLISH_LEXER;', 3, 'CHINESE_VGRAM_LEXER;', 'CHINESE_LEXER;') CTI_DDL
FROM SYSOBJECTS O, SYSCONTEXTINDEXES CTI, SYSCOLUMNS COL
WHERE O.SUBTYPE$='CNTIND'
AND O.ID = CTI.ID
AND CTI.TABLEID = COL.ID
AND CTI.COLID = COL.COLID;
使用CONTEXT_INDEX_DEF函数。参数见SQL使用手册。
比如select CONTEXT_INDEX_DEF(33555736, 1); 第一个参数是全文索引的ID。
可以查看SYSCONTEXTINDEXES 系统表
中 ,
全文索引创建会有 4 个 自 动 生 成 的 辅 助 表 CTI$ CTI_ADDRESS$I,CTI$ CTI_ADDRESS$P,
CTI$ CTI_ADDRESS$N 和 CTI$ CTI_ADDRESS$D 信息保存在 SYSOBJECTS 系统表中。
这四张表由服务器自动维护,用户可以查询,但不可以直接修改表内容。