Oracle Выберите, где 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 ответа
Решение
Ты можешь использовать DBMS_LOB.INSTR
Функция для поиска строк в Лоб. Как это:
SELECT *
FROM T_WEB_TASK_IT
WHERE DBMS_LOB.INSTR( T_WEB_TASK_IT.ISSUE_DESCRIPTION , 'Turning on the') > 0
Помимо DBMS_LOB.INSTR, вы также можете использовать регулярные выражения:
SELECT *
FROM T_WEB_TASK_IT
WHERE regexp_like(issue_description, 'Turning on the')