위지윅 에디터에서의 값을 저장 하기 위해 필드 타입을 TEXT 로 하였다.
하지만 에러가 발생하였고, 원인 분석 결과
스크린샷을 그대로 복사해서 에디터에 붙여 넣게 되고, 그렇게 되면 스크린샷 그림 파일을 바이너리 형식 코드로 전부 변환해서 에디터에 붙여넣게 되고 그 길이는 그림파일의 크기랑 동일 시 된다.
애당초 에디터의 이미지 첨부 기능을 만들어놓았지만... 유저의 경우 아니 나라도 보통 복사 붙여넣기를 하지 이미지 첨부는 잘 하지 않게 된다.
상황은 그러해서 TEXT 형식에 대해서 알아보기로 하였다.
TEXT 의 종류 다음과 같이 4종류가 있고
그 크기에 따라 구분이된다. 상황에 따라 구분하여 사용하면 되겠지만 아직 까지 TEXT 이상의 필드를 사용하는 것을 본적은 없다.
TINYTEXT 256 bytes
TEXT 65,535 bytes ~64kb
MEDIUMTEXT 16,777,215 bytes ~16MB
LONGTEXT 4,294,967,295 bytes ~4GB
출처: http://sjpison.tistory.com/119 [비손의 블로그]
추가적으로 ORACLE에서는 CLOB을 사용했었는데 추가적으로 알아보자
https://docs.oracle.com/en/database/oracle/oracle-database/18/sqlrf/Data-Types.html#GUID-4570CDFD-8F91-44B9-BE7F-13076AA2AEBF
오라클 공식 문서를 확인해보면
LOB 이라는 필드를 제공하며 이는 큰데이터를 담을 수 있다.
상황에 따라 CLOB, BLOB, NLOB 3가지로 사용 할 수 있으며 각 각의
CLOB : 간단히 2기가 이하의 문자열을 저장에 적합
A CLOB (character large object) value can be up to 2,147,483,647 characters long. A CLOB is used to store unicode character-based data, such as large documents in any character set.
BLOB : 2기가 이하의 바이너리 코드 저장 에 적합
A BLOB (binary large object) is a varying-length binary string that can be up to 2,147,483,647 characters long. Like other binary types, BLOB strings are not associated with a code page. In addition, BLOB strings do not hold character data.
NLOB : 4기가 이하의 유니코드 저장에 적합
The NCLOB
data type stores Unicode data. Both fixed-width and variable-width character sets are supported, and both use the national character set. NCLOB
objects can store up to (4 gigabytes -1) * (the value of the CHUNK
parameter of LOB storage) of character text data.
참조
https://docs.oracle.com/javadb/10.8.3.0/ref/
https://docs.oracle.com/en/database/oracle/oracle-database/18/sqlrf/Data-Types.html#GUID-4570CDFD-8F91-44B9-BE7F-13076AA2AEBF