1

我正在使用 oracle 10g,我认为我有contains条款问题。

这是下面的查询。我有三个环境 dev、val 和 prod。

SELECT ABBRT.ID ,ABBRT.ABBREVIATION ,ABBRT.STATUSCODE ,ABBRT.FULLFORM ,APPLT.LABEL ,ABBRT.REMARK ,ABBRT.STATECODE
FROM ABBREVIATION ABBRT,APPLICABILITY APPLT,ABBREVIATION_APPLICABILITY AAT
WHERE 1=1
AND ABBRT.ID=AAT.ABBREVIATIONID
AND AAT.APPLICABILITYID=APPLT.ID
AND upper(ABBRT.STATECODE)='V'
AND ((contains(ABBRT.ABBREVIATION,'a\-d') > 0) OR (contains(ABBRT.FULLFORM,'a\-d') > 0))
ORDER BY ABBRT.ID

当我在 dev 上运行此查询工作正常时,我得到了预期的结果,但是当我在 val 和 prod 上运行此查询时,我没有得到预期的结果。

信息:

a\-d: when i search this data i am not getting result.
a\-in:  when i search this data i am not getting result.
a\-e:  when i search this data i am getting result.
a\-f:  when i search this data i am getting result.

上述行为发生在所有 dev、val 和 prod 环境中。

不知道有没有问题。我想问为什么这是唯一的a\-d问题a\-in。为什么不是其他人。但这正在开发为什么。

val、dev 和 prod 的值相同。

ABBREVIATIONFULLFORMclob类型。ABBREVIATION它具有他们在和FULLFORM列上都使用过的上下文索引。
当我在 sql 上检查时,这个索引查询由 sql on dev 生成

 CREATE INDEX "F280"."IDX_ABBR_ABBR" ON "F280"."ABBREVIATION" ("ABBREVIATION") 
   INDEXTYPE IS "CTXSYS"."CONTEXT" PARAMETERS ('replace stoplist empty_stoplist');

PARAMETERS属性有这个值 replace stoplist empty_stoplist

当我在 val 和 prod 上检查 val 为 null 并且在 prod PARAMETERS SYNC 上(提交时)。

我试图通过删除并再次创建来重新创建索引。我还是失败了

我也在 val 上尝试了这个查询来同步,因为它在 dev 上,但我得到了错误。

询问:

 CREATE INDEX "F280"."IDX_ABBR_ABBR" ON "F280"."ABBREVIATION" ("ABBREVIATION") 
   INDEXTYPE IS "CTXSYS"."CONTEXT" PARAMETERS ('replace stoplist empty_stoplist');

错误:

Error report:
SQL Error: ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
ORA-20000: Oracle Text error:
DRG-11000: invalid keyword REPLACE
ORA-06512: at "CTXSYS.DRUE", line 160
ORA-06512: at "CTXSYS.TEXTINDEXMETHODS", line 364
29855. 00000 -  "error occurred in the execution of ODCIINDEXCREATE routine"
*Cause:    Failed to successfully execute the ODCIIndexCreate routine.
*Action:   Check to see if the routine has been coded correctly.

我也在 val 上尝试过这个索引,但它正在创建但没有反映

CREATE INDEX "F280"."IDX_ABBR_FULLFORM" ON "F280"."ABBREVIATION"
  (
    "FULLFORM"
  )
  INDEXTYPE IS "CTXSYS"."CONTEXT" PARAMETERS
  (
    'SYNC(on commit)'
  );
4

0 回答 0