2017-02-13 4 views
0

이미지가 매우 작은 크기 (예 : 아이콘 < 5KB)로 H2 데이터베이스에 base64 인코딩 형식으로 이미지를 삽입했습니다.CLOB에서 Javascript로 문자열 변환하는 방법

"img"열에 올바르게 저장하기 위해 CLOB 데이터 유형을 사용했습니다.

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

문제는 select *하는 동안, 그것은 도시되어

"clob19 : 공간 (398/* 테이블 : 4875 ID : 1 * /)"

내가 언급 한 실제 문자열 대신.

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

가 어떻게 내 base64로 텍스트를 얻기 위해 문자열로 IMG 데이터를 변환 할 수 있습니다 : 그리고 JQuery와/아약스 (안 자바)이 같은 보여주는 JSON 너무 아약스 응답에서이 SELECT *를 호출하는거야?

답변

1

나는 h2의 여동생 인 hsqldb와 비슷한 문제가있었습니다.

이진 데이터 대신 텍스트 데이터를 사용하기 위해 clob 대신 longvarchar 데이터 형식을 사용하여 문제를 해결하는 쉬운 방법을 선택했습니다.

성능 이상 10^6 행

H2 정수에서

와 좋았다 =] -2147483648; 2147483647 [그래서 당신이 텍스트 필드에 적어도 2GB의 데이터를 저장할 수 있다고 상상해

+0

고마워하지만 h2에 longvarchar가 없습니다 ... 참조 http://www.h2database.com/html/datatypes.html – Sky

+0

http : //www.h2database.com/html/datatypes.html#varchar_type "Integer.MAX_VALUE"로 varchar 크기 제한을 확인하십시오. –

+0

varchar의 한계는 255이고 base64 바이너리 문자열은 다음과 같습니다. – Sky

관련 문제