使用 Liquibase 创建 Oracle CTXSYS.CTXCAT 索引

Create Oracle CTXSYS.CTXCAT index with 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 执行它的句子时 returns 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>

对于可能面临此问题的任何人。我发现了错误,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>