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')
Другие вопросы по тегам