2

我有一个 Oracle 表,在这个表中我有一列类型为NCLOB. 我想SELECT LIKE对它执行如下操作:

SELECT
*
FROM
T_WEB_TASK_IT
WHERE DBMS_LOB.substr( T_WEB_TASK_IT.ISSUE_DESCRIPTION , 32000, 1)
LIKE '%Turning on the%'

但它不起作用,我收到一条错误消息:

字符串缓冲区太小

但我不明白这怎么可能,因为我知道那个特定记录的列中没有那么多字符!

4

2 回答 2

2

您可以使用DBMS_LOB.INSTR函数在 lob 中搜索字符串。像这样:

SELECT *
FROM   T_WEB_TASK_IT
WHERE  DBMS_LOB.INSTR( T_WEB_TASK_IT.ISSUE_DESCRIPTION , 'Turning on the') > 0
于 2013-12-06T13:01:09.007 回答
0

除了 DBMS_LOB.INSTR,您还可以使用正则表达式:

SELECT *
FROM T_WEB_TASK_IT
WHERE regexp_like(issue_description, 'Turning on the')
于 2013-12-06T14:35:25.127 回答