Oracle包含无效标识符ORA-00904

时间:2013-09-12 21:14:54

标签: sql oracle contains oracle-sqldeveloper ora-00904

所以我有一个webapp,它接收一个字符串,其中ID元素被' - '分解(例如someid1-someid2)。然后我将字符串转换为类似someid1 OR someid2的字符串。根据{{​​3}}的理论,这应该允许我做类似

的事情
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;

1 个答案:

答案 0 :(得分:3)

在使用oracle text index功能

之前,您应该创建CONTAINS
CREATE INDEX idxName ON tableName(columnName) INDEXTYPE IS CTXSYS.CONTEXT;

Here 您可以找到有关 Oracle Text 的更多信息。