2017-02-13 4 views
0

Ich habe Bilder in H2-Datenbank als Base64-codierte Format eingefügt, da Bilder sehr kleine Größe hat (d. H. Icons < 5KB).Konvertieren von CLOB in String in Javascript

Ich habe CLOB-Datentyp dafür verwendet und es ordnungsgemäß in "img" -Spalte gespeichert.

dh

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAIAAAACUFjqAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACtSURBVChTVY8LEsIgDES5qybY6SHKp3oKsR5CqxezJdA6pqT+ZnaGhEc2i4o0i8aYrPXhdI6UP5dfTJQR0RjDeEg/eEh5jBPfgsbGGq7/MNtKAwBlemUsZYzjIcQdS2tA3ALwsUNdHUOnQuhc653fe+8BNnVdte2BW9bleiu7RxKrEs2VHLIxK24oPQVrrZvGFrYk5WLB74+uybl+0GLAY5Jc3CbO0ff38rSI5hdpMe9eZGPCOAAAAABJRU5ErkJggg== 

Die Frage, während sich select * tun, es zeigt:

"clob19: SPACE (398/* Tabelle: 4875 ID: 1 * /)"

anstelle der tatsächlichen Zeichenfolge, die ich erwähnt habe. Und ich rufe diese SELECT * von Jquery/Ajax (nicht Java) so Ajax-Antwort in json wie diese zeigen:

[{"img":"clob19: SPACE(398 \/* table: 4875 id: 1 *\/)","type":"abc","id":"1"}] 

Wie kann ich img Daten in String konvertieren zu meinem base64 Text zu bekommen?

Antwort

1

Ich hatte ein ähnliches Problem mit hsqldb, die wie die Schwester von h2 ist.

Ich habe den einfachen Weg gewählt, das Problem zu lösen, indem ich einen longvarchar-Datentyp anstelle eines Clobs verwende, um Textdaten anstelle von Binärdaten zu verwenden.

Die Leistung war gut, mit mehr als 10^6 Reihen

In H2, = Integer] -2147483648; 2147483647 [so stelle ich mir Sie mindestens 2 GB Daten in einem Textfeld

+0

Dank speichern kann, aber es gibt keine longvarchar in h2 ... siehe http://www.h2database.com/html/datatypes.html – Sky

+0

http: //www.h2database.com/html/datatypes.html#varchar_type Probieren Sie "Integer.MAX_VALUE" aus, um die VARCHAR-Größenbeschränkung zu sehen –

+0

varchar hat ein Limit von 255 und mein base64-Binärstring ist viel mehr als das – Sky

Verwandte Themen