H2 jdbc исключение - шестнадцатеричная строка с нечетным количеством символов - PullRequest
0 голосов
/ 31 августа 2018

Следующий stmt работает на mysql, но не на базе данных H2

вставить в XXX (содержание) Выбрать перерабатывать('{ "текст": "testsee", "url": "http://hjh.com", "Телефон" : "" } ', BINARY) как контент от ...

Состояние SQL: 90003 Код ошибки: 90003 Сообщение: шестнадцатеричная строка с нечетным числом символов: "{ "" text "": "" testsee "", "" url "": "" http://hjh.com"", ""Телефон"" : """" } "; Оператор SQL: Может кто-нибудь сказать мне, как я могу решить эту проблему? столбец содержимого имеет тип blob. Это микросервис с весенней загрузкой, в котором тесты проводятся на H2 Stmt написан на puresql и выполняется при прохождении во время запуска.

1 Ответ

0 голосов
/ 31 августа 2018

Это происходит из-за того, что база данных пытается преобразовать строку Java в BLOB (байтовую строку), измените тип столбца на BLOB на VARCHAR (размер) или TEXT.

Вы также можете проверить эту ссылку https://dev.mysql.com/doc/refman/8.0/en/blob.html

BLOB - это большой двоичный объект, который может содержать переменное количество данных. Четырьмя типами BLOB являются TINYBLOB, BLOB, MEDIUMBLOB и LONGBLOB. Они отличаются только максимальной длиной значений, которые они могут содержать. Четырьмя типами TEXT являются TINYTEXT, TEXT, MEDIUMTEXT и LONGTEXT. Они соответствуют четырем типам BLOB и имеют одинаковую максимальную длину и требования к хранению.

...