Oracle

為什麼 CTX_DDL.SYNC_INDEX 程序不起作用?

  • July 28, 2020

我正在按照Oracle 文件使用 Oracle Text 創建索引。問題是,當我更新我的數據並希望將我的索引與CTX_DDL.SYNC_INDEX過程同步時(根據文件的第 4 步),沒有任何變化。

我不發布我的程式碼,因為它與文件完全相同。

關於這種行為的來源的想法?

要執行此操作,執行該SYNC_INDEX過程的使用者必須是索引的所有者。因此,就我而言,我必須向 CTXSYS 使用者授予對包的執行權限:

GRANT EXECUTE ON CTXSYS.CTX_DDL TO myuser;

現在,我可以將我的索引與myuser同步:

EXEC CTX_DDL.SYNC_INDEX('idx_docs', '2M');
SELECT SCORE(1), id, text FROM docs WHERE CONTAINS(text, 'city', 1) > 0;

我得到了與文件相同的結果:

 SCORE(1)         ID TEXT
---------- ---------- -------------------------------------------------
        4          2 <HTML>Paris is a city in France.</HTML>
        4          4 <HTML>Los Angeles is a city in California.</HTML>
        4          5 <HTML>Mexico City is big.</HTML>

引用自:https://dba.stackexchange.com/questions/166694