我有一个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%'
但它没有用,我收到一个错误说:
字符串缓冲区太小
但是我不明白怎么会这样,因为我知道这个特定记录的那一列中没有那么多字符的事实!
非常感谢任何帮助。
谢谢。
答案 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')