org.h2.jdbc.JdbcSQLException: шестнадцатеричная строка содержит не шестнадцатеричный символ: - PullRequest
0 голосов
/ 12 июня 2019

Когда я пытаюсь вставить данные в таблицу H2, показывается следующее исключение.

ВСТАВИТЬ В ДАННЫЕ (IP, HEADERS, METHOD, BODY, ID, TIME) (?,?,?,?,?,?) - (? 1,? 2,? 3,? 4,? 5,? 6) [90004-175]

Вызывается: org.h2.jdbc.JdbcSQLException: Шестнадцатеричная строка содержит не шестнадцатеричный символ: "[accept = application / json, activityid = caf59f7d-b2f1-4250-9e7a-61606ff5dace, Authorization = Bearer dc98a786-6dda-35e0-9086-7a3beba5edd5, Content = LengthContent-Type = application / json, Host = 190.0.0.101: 8248, User-Agent = curl / 7.58.0] ";Оператор SQL: ВСТАВИТЬ В ДАННЫЕ (IP, ЗАГОЛОВОКИ, МЕТОД, ТЕЛО, ИД, ВРЕМЯ) ЗНАЧЕНИЯ (?,?,?,?,?,?) - (? 1,? 2,? 3,? 4,? 5,? 6) [90004-175]

Таблица: СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ ДАННЫХ (ВРЕМЯ ВРЕМЕНИ, ID VARCHAR (255), МЕТОД VARCHAR (255), BLOB заголовков, BLOB для тела, IP VARCHAR (255), ПЕРВИЧНЫЙ КЛЮЧ (ID));

В чем может быть причина этого?Как я могу решить это?Это проблема такого типа или значения вставки.

Оцените ваш ценный вклад здесь.

1 Ответ

0 голосов
/ 13 июня 2019

Как показывает мой опыт, эта проблема возникла из-за типа данных BLOB. Чтобы преодолеть эту проблему, нам нужно применить метод RAWTOHEX () для значений этого конкретного столбца типа BLOB.

например:

ВСТАВИТЬ В ДАННЫЕ (ВРЕМЯ, ID, МЕТОД, ЗАГОЛОВОКИ, ТЕЛО, IP) ЗНАЧЕНИЯ (123456, 'urn: uuid: 05bc688db5-530e-4d68-b306-92647bba06c7', 'POST', RAWTOHEX ('accept = application) / json, activityid = 84030318-7095-46ad-aea1-50d8644fef3f] '), RAWTOHEX (' world '),' 10.100.5.22 ');

...