我在使用 LOCATE 查询 CLOB 字段时遇到了一个小问题。
我正在 CLOB 中搜索特定名称,但只要在搜索字符串中添加空格,它就会返回 0 索引。
工作代码:
select count(REFERENCE_#) AS AssignCount
from ARADMIN.SRMIS_REQUEST
where DATE_OCCURRED_DT is not null
and (DATE_OCCURRED_DT >= add_months(sysdate, -12) )
and ({FN LOCATE('INFO-MGMT-SRVCS.R3', "SRMIS_REQUEST"."TRACE_LOG")} > 0)
非工作代码:
select count(REFERENCE_#) AS AssignCount
from ARADMIN.SRMIS_REQUEST
where DATE_OCCURRED_DT is not null and trim(DATE_OCCURRED_DT) != ''
and (DATE_OCCURRED_DT >= add_months(sysdate, -12) )
and ({FN LOCATE('The problem has been assigned to INFO-MGMT-SRVCS.R3', "SRMIS_REQUEST"."TRACE_LOG")} > 0)
我什至查询了“SRMIS_REQUEST”.“TRACE_LOG”,并直接将带有空格的字符串复制到我的 where 子句中进行测试。
Oracle 文档没有说明是否允许使用空格。
我的第二个查询有什么问题?
编辑:
我将查询更改为使用instr()
insetead ofLOCATE()
并且它有效。