java. sql .SQLException: ORA-22835: буфер слишком мал для преобразования CLOB в CHAR или преобразования BLOB в RAW - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть динамический c запрос сборки и выполняется с TypedQuery<NewsContentBaseInfo>, и одним из полей является объект CLOB - news.stores. Вот ошибка, которую я получаю, и я не могу найти информацию, как решить эту проблему:

java.sql.SQLException: ORA-22835: Buffer too small for CLOB to CHAR or BLOB to RAW conversion

Вот запрос:

SELECT DISTINCT new com.kaufland.newsletter.usecase.newscontent.search.dto.response.NewsContentBaseInfo(news.id, news.uuid, news.dayAndTimeOfPublish, news.title, news.subtitle, news.categoryCountry, news.newsPeriod, to_char(news.stores)) 
FROM com.kaufland.newsletter.domain.content.AbstractNewsContent news 
LEFT OUTER JOIN news.newsLinks newsLinks 
WHERE news.country = :country AND news.status = :status 
AND news.dayAndTimeOfPublish >= :dayAndTimeOfPublishStart 
AND news.dayAndTimeOfPublish <= :dayAndTimeOfPublishEnd 
AND (news.stores LIKE '%'||:storeNumber0||'%') 
AND news.categoryCountry.id in :includeCategoryIds 
AND (LOWER(news.title) LIKE LOWER('%'||:searchText||'%') 
    OR LOWER(news.subtitle) LIKE LOWER('%'||:searchText||'%') 
    OR LOWER(news.text1) LIKE LOWER('%'||:searchTextEscaped||'%') 
    OR LOWER(news.text2) LIKE LOWER('%'||:searchTextEscaped||'%') 
    OR LOWER(news.text3) LIKE LOWER('%'||:searchTextEscaped||'%') 
    OR LOWER(newsLinks.displayText) LIKE LOWER('%'||:searchText||'%')) 
ORDER BY news.dayAndTimeOfPublish DESC

1 Ответ

2 голосов
/ 20 февраля 2020

Функция to_char возвращает varchar, который ограничен 4000 символами. Если CLOB больше этого, вы можете получить эту ошибку (в зависимости от версии Oracle).

Если вам действительно нужно значение String, вы можете попробовать с пакетом dbms_lob (https://docs.oracle.com/database/121/ARPLS/d_lob.htm#ARPLS600), который может обрабатывать больше символов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...