我已经将图像作为base64编码格式插入H2数据库,因为图像具有非常小的尺寸(即图标<5KB)。
我已经使用了CLOB数据类型并将其正确存储在&#34; img&#34;列。
即
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAIAAAACUFjqAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACtSURBVChTVY8LEsIgDES5qybY6SHKp3oKsR5CqxezJdA6pqT+ZnaGhEc2i4o0i8aYrPXhdI6UP5dfTJQR0RjDeEg/eEh5jBPfgsbGGq7/MNtKAwBlemUsZYzjIcQdS2tA3ALwsUNdHUOnQuhc653fe+8BNnVdte2BW9bleiu7RxKrEs2VHLIxK24oPQVrrZvGFrYk5WLB74+uybl+0GLAY5Jc3CbO0ff38rSI5hdpMe9eZGPCOAAAAABJRU5ErkJggg==
问题在于select *
,它显示:
&#34; clob19:SPACE(398 / *表:4875 id:1 * /)&#34;
而不是我提到的实际字符串。我从jquery / ajax(而不是Java)调用此SELECT *
所以json中的ajax响应显示如下:
[{"img":"clob19: SPACE(398 \/* table: 4875 id: 1 *\/)","type":"abc","id":"1"}]
如何将img数据转换为字符串以获取我的base64文本?
答案 0 :(得分:1)
我和hsqldb有类似的问题,就像h2的妹妹一样。
我选择了使用longvarchar数据类型而不是clob来解决问题的简单方法,以便使用文本数据而不是二进制数据。
表现良好,超过10 ^ 6行
在H2中,Integer =] -2147483648; 2147483647 [所以我想你可以在文本字段中存储至少2GB的数据