Indexing oracle中a-d在上下文索引中表现不同的原因

Indexing oracle中a-d在上下文索引中表现不同的原因,indexing,oracle10g,oracle-text,ora-29855,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 W

我正在使用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.
 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.
上述行为发生在所有dev、val和prod环境中

我不知道这是否是个问题。我想问一下,为什么问题只存在于
a \-d
a \-in
中。 为什么不是其他人呢。但这就是为什么

val、dev和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
缩写
FULLFORM
列为
clob
类型。 它有他们在
缩写词
全文
列上使用的上下文索引。
当我在sql上检查时,这个索引查询是由sql在dev上生成的

 CREATE INDEX "F280"."IDX_ABBR_ABBR" ON "F280"."ABBREVIATION" ("ABBREVIATION") 
   INDEXTYPE IS "CTXSYS"."CONTEXT" PARAMETERS ('replace stoplist empty_stoplist');
参数
属性具有此值
替换停止列表空\u停止列表

当我检查on val和prod on val是否为空以及on prod参数是否同步(提交时)

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

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

查询:

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.
 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.
错误:

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.
 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)'
  );

我要做的第一件事是缩小查询-它包含太多似乎与问题无关的子句。也就是说,该问题是否也可以通过以下查询重现:从缩写词ABBRT中选择缩写词ABBRT,其中包含(缩写词,'a \-d')>0
从缩写ABBRT中选择ABBRT.缩写,其中包含(缩写,'a \-e')>0)?对于在一个环境中,而在另一个环境中,您是否也会得到不同的结果?