Oracle选择NCLOB所在的字符串

时间:2013-12-06 12:45:31

标签: oracle select nclob

我有一个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%'

但它没有用,我收到一个错误说:

  

字符串缓冲区太小

但是我不明白怎么会这样,因为我知道这个特定记录的那一列中没有那么多字符的事实!

非常感谢任何帮助。

谢谢。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

SELECT *
FROM T_WEB_TASK_IT
WHERE regexp_like(issue_description, 'Turning on the')