【问题标题】:Create Oracle CTXSYS.CTXCAT index with Liquibase使用 Liquibase 创建 Oracle CTXSYS.CTXCAT 索引
【发布时间】:2019-04-17 02:28:54
【问题描述】:

我正在尝试使用 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: invalid CREATE INDEX option。但是,使用 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 应该是 ';'并不是 '/'。我将编辑添加解决方案的问题。
  • 如果您找到了答案,请不要编辑您的问题。添加答案并接受它,否则问题将保持打开状态。

标签: oracle liquibase


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-17
    • 2017-04-27
    相关资源
    最近更新 更多