Indexing oracle中a-d在上下文索引中表现不同的原因
我正在使用oracle 10g,我想我有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
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)代码>?对于在一个环境中,而在另一个环境中,您是否也会得到不同的结果?