* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
Window7 32bit, Linux 64bit 등 | |
9.3.7 | |
cubrid 매니저 | |
java, jdbc |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
이전에 질문을 한번 드렸습니다. clob 처리시 char_to_clob, clob_to_char 함수를 사용한다고 하셨는데요.
이 함수를 사용해서 처리하는것과 해당 함수를 이용하지 않고 그냥 insert, update, select 하는 차이가 무엇인지요.
저희가 테스트를 진행할때 프로그램에서 따로 해당 함수를 사용하지 않아도 입력,수정,조회가 정상으로 진행이 되서요.
차이점이 무엇인지 알고 싶습니다.
이전에 반드시 해당 함수를 사용해야 한다고 답변을 주셔서 차이점을 알고 싶습니다.
감사합니다.
안녕하세요. 큐브리드를 이용해 주셔서 감사합니다.
CLOB 이란?
CUBRID의 매뉴얼에는 아래와 같이 나와 있다. 간단하게 설명하면, 사이즈가 큰 데이터를 외부 파일로 저장하기 위한 데이터 타입입니다.
- 문자열 데이터를 DB 외부에 저장하기 위한 타입
- CLOB 데이터의 최대 길이는 외부 저장소에서 생성 가능한 파일 크기
- CLOB 타입은 SQL 문에서 문자열 타입으로 입출력 값을 표현한다. 즉, CHAR(n), VARCHAR(n), NCHAR(n), NCHAR VARYING(n) 타입과 호환된다. 단, 명시적 타입 변환만 허용되며, 데이터 길이가 서로 다른 경우에는 최대 길이가 작은 타입에 맞추어 절삭(truncate).
- CLOB 타입 값을 문자열 값으로 변환하는 경우, 변환된 데이터는 최대 1GB를 넘을 수 없다. 반대로 문자열을 CLOB 타입으로 변환하는 경우, 변환된 데이터는 CLOB 저장소에서 제공하는 최대 파일 크기를 넘을 수 없다.
clob타입을 사용했을 경우, databases.txt에 정의된 lob path에 해당 파일들이 저장되며, DB에서는 해당 경로의 정보만 가지고 있습니다.
ex)
csql> create table mmdb(id int, name char(20), name2 clob);
csql> insert into mmdb values( 1, 'cubrid', 'cubrid');
1 row affected. (0.001503 sec) Committed.
1) 자료를 INSERT, UPDATE 시 CHAR_TO_CLOB(char_type_column_or_value)함수 사용
2) 자료를 SELECT 시 CLOB_TO_CHAR(clob_type_column [USING charset])함수 사용
로 가이드 한 것입니다.
위 사항을 확인 후, 다시 검토 해보시기 바랍니다.
감사합니다.