2

所以我有一个 webapp,它接受一个字符串,其中 ID 元素被“-”(例如someid1-someid2)分解。然后我将字符串转换为类似someid1 OR someid2. 根据Oracle的文档,这在理论上应该允许我做类似的事情

SELECT somecol1, somecol2 FROM sometable WHERE CONTAINS (somecol1, 'someid1 OR someid2') > 0;

但是,在 SQL Dev 中运行示例查询时出现以下错误:

ORA-00904:“包含”:无效标识符
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;
4

1 回答 1

3

您应该oracle text index在使用CONTAINS函数之前创建

CREATE INDEX idxName ON tableName(columnName) INDEXTYPE IS CTXSYS.CONTEXT;

在这里您可以找到有关Oracle Text的更多信息。

于 2013-09-12T21:59:17.887 回答