为什么a-d在oracle中的上下文索引中表现不同

时间:2014-11-07 05:45:12

标签: indexing oracle10g oracle-text ora-29855

我正在使用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\-da\-in。 为什么不是别人。但这是为了解决原因。

val,dev和prod上有相同的值。

ABBREVIATIONFULLFORM列为clob类型。 它具有在ABBREVIATIONFULLFORM列上使用的上下文索引 当我在sql上检查那个由sql在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 on val为空时和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)'
  );

0 个答案:

没有答案