Назад | Перейти на главную страницу

DB2 Ошибка "Строковая константа, начинающаяся с… слишком длинная" при вставке 40000 символов в поле CLOB (50000)

Я создал поле CLOB (50000) в таблице DB2 и проверил, что оно правильно создано с помощью

DB2 DESCRIBE TABLE dbname

... однако я получил следующее сообщение об ошибке даже при попытке вставить в поле строку из 40000 символов:

 [IBM][CLI Driver][DB2/LINUXX8664] SQL0102N  The string constant beginning with
 "'''Testing Long Notes! Testing Long Notes! Testing Long Notes! Testing" is too long.  
 SQLSTATE=54002 SQLCODE=-102

«Тестирование длинных заметок!» это просто строка, которую я повторял снова и снова в поле HTML, чтобы получить длину строки 40 000. Затем скрипт PHP обрабатывает опубликованную HTML-форму и пытается выполнить SQL INSERT, что приводит к ошибке.

Что мне здесь не хватает? Есть ли другое место, где установлен максимальный размер поля, который отменяет настройку CLOB (50000)? Возможно, элемент конфигурации для управления размерами полей?

Я относительно новичок в DB2 после того, как клиенту потребовалось преобразование из MySQL.

Вам нужно использовать подготовленные заявления вместо того, чтобы объединять значения в запрос самостоятельно. Это также относится к MySQL как к хорошей практике - подготовленные операторы защищают вас от SQL-инъекции.

DB2 откажется обрабатывать необработанный запрос длиной более 32 000 символов.