我正在使用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上有相同的值。
ABBREVIATION
和FULLFORM
列为clob
类型。
它具有在ABBREVIATION
和FULLFORM
列上使用的上下文索引
当我在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)'
);