org.h2.jdbc.JdbcSQLException:十六进制字符串包含非十六进制字符:

时间:2019-06-12 18:34:58

标签: database h2

当我尝试向H2表中插入数据时,它显示了以下异常。

  

插入数据(IP,标题,方法,主体,ID,时间)值(?,?,?,?,?,?)-(?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-Length = 19,Content-Type = application / json,Host = 190.0.0.101:8248,User-Agent = curl / 7.58.0]“; SQL语句:   将数据插入(IP,HEADERS,METHOD,BODY,ID,TIME)值(?,?,?,?,?,?)-(?1,?2,?3,?4,?5,?6 )[90004-175]

     

表:   如果不存在数据,则创建表(       时间标记       ID VARCHAR(255),       方法VARCHAR(255),       HEADERS BLOB,       身体BLOB       IP VARCHAR(255),       主键(ID)   );

这可能是什么原因?我该如何解决?这是该类型或插入值的问题吗?

在这里感谢您的宝贵意见。

1 个答案:

答案 0 :(得分:0)

根据我的经验,由于BLOB数据类型,此问题已经出现。为了解决此问题,我们需要对特定的BLOB类型列的值应用 RAWTOHEX()方法。

例如:

插入数据(时间,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');