使用Liquibase创建Oracle CTXSYS.CTXCAT索引

时间:2019-04-15 21:20:21

标签: oracle liquibase

我正在尝试使用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>

1 个答案:

答案 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>