我正在尝试使用Liquibase创建Oracle CTXSYS.CTXCAT索引类型。如何使用Liquibase创建这种类型的Oracle索引?
我执行操作的方式是使用SQL更改集
<changeSet id="1" author="giovanni.esposito">
<sql endDelimiter="/">
CREATE INDEX idx_full_txt_search ON ${defaultSchemaName}.employee(full_text_search) INDEXTYPE IS CTXSYS.CTXCAT;
/
</sql>
</changeSet>
当Liquibase执行该语句时,它返回ORA-02158:无效的CREATE INDEX选项。但是,使用SQLDeveloper,我可以用相同的句子创建索引。
解决方案
<changeSet id="1" author="giovanni.esposito">
<sql endDelimiter=";">
CREATE INDEX idx_full_txt_search ON ${defaultSchemaName}.employee(full_text_search) INDEXTYPE IS CTXSYS.CTXCAT;
</sql>
</changeSet>
答案 0 :(得分:0)
对于任何可能面临此问题的人。我发现了错误,endDelimiter应该是';'并不是 '/'。我将编辑添加解决方案的问题。
解决方案
<changeSet id="1" author="giovanni.esposito">
<sql endDelimiter=";">
CREATE INDEX idx_full_txt_search ON ${defaultSchemaName}.employee(full_text_search) INDEXTYPE IS CTXSYS.CTXCAT;
</sql>
</changeSet>