我在使用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()
而不是LOCATE()
并且它有效。