我有一个web应用程序,它接收一段字符串,其中ID元素被分隔符“-”(例如someid1-someid2
)分开。然后,我将该字符串转换为类似于someid1 OR someid2
的形式。根据Oracle文档理论上应该允许我执行以下操作:
SELECT somecol1, somecol2 FROM sometable WHERE CONTAINS (somecol1, 'someid1 OR someid2') > 0;
然而,当我在SQL Dev中运行示例查询时,出现以下错误:
ORA-00904: "CONTAINS": 无效的标识符 00904. 00000 - "%s:无效的标识符" *原因: *操作:
Oracle的版本是“Oracle9i Enterprise Edition Release 9.2.0.5.0 - Production”,文档也是如此,因此我不明白为什么“CONTAINS”会被视为无效标识符。添加其他可选参数。
SELECT somecol1, somecol2 FROM sometable WHERE CONTAINS (somecol1, 'someid1 OR someid2', 1) > 0;
同样会出现错误,我/它在这里做错了什么?
编辑:
根据要求,“工作中的代码”,尽管有争议,但它实际上并未起作用。
SELECT tech, product FROM tech_det_view WHERE CONTAINS (tech, 'test OR qual') > 0;
ORA-20000:Oracle Text错误:DRG-10599:列未索引
。所以也许v9.2数据库不够“聪明”,会给出一个“坏”的错误?如果CONTAINS需要一个唯一索引(例如几个列),那么我需要吗?或者如果这个列有一些重复,只索引这个列是否可以? - Kurt Wagner