Oracle 데이터베이스에서는 다양한 LOB(Large Object) 데이터 형식을 제공한다.
LOB 데이터 형식은 대용량 데이터를 저장하는 데 사용되며 주요 Oracle LOB 데이터 형식과 간단한 예제를 알아보자
1. BLOB (Binary Large Object):
- 이진 데이터를 저장하기 위한 데이터 형식으로 주로 이미지, 동영상, 오디오 파일 등 이진 데이터를 저장하는 데 사용된다
- 이미지를 BLOB로 저장하기
CREATE TABLE ImageTable (id NUMBER, image BLOB);
INSERT INTO ImageTable (id, image) VALUES (1, utl_raw.cast_to_raw('이진이미지데이터'));
2. CLOB (Character Large Object):
- 문자 데이터를 저장하기 위한 데이터 형식으로 주로 텍스트, 문서, HTML, XML 데이터 등 문자열 데이터를 저장하는 데 사용된다
- 텍스트 문서를 CLOB로 저장하기
CREATE TABLE TextDocument (id NUMBER, document CLOB);
INSERT INTO TextDocument (id, document) VALUES (1, '이것은 CLOB로 저장된 텍스트 문서입니다.');
3. NCLOB (National Character Large Object):
- 다국어 및 유니코드 문자 데이터를 저장하기 위한 데이터 형식으로, CLOB와 유사하지만 다국어 문자 데이터를 지원한다
- 다국어 텍스트를 NCLOB로 저장하기
CREATE TABLE MultilingualText (id NUMBER, text NCLOB);
INSERT INTO MultilingualText (id, text) VALUES (1, '多语言文本');
4. BFILE (Binary File LOB):
- 이진 파일의 경로를 저장하는 데이터 형식으로, 실제 파일은 파일 시스템에 저장되며 데이터베이스는 파일의 경로만 저장된다
- BFILE로 파일 경로 저장하기
CREATE TABLE BinaryFiles (id NUMBER, file BFILE);
INSERT INTO BinaryFiles (id, file) VALUES (1, BFILENAME('DIRECTORY', 'file.pdf'));
위의 형식은 Oracle 데이터베이스에서 사용되는 주요 LOB 데이터 형식이며,
데이터베이스 내에서 대용량 데이터를 효과적으로 저장하고 관리하는 데 사용된다.
... 번외
java에서 clob데이터를 디비에 저장하고 읽어오는 방법
ublic String getLargeCLOBData(Long id) throws SQLException {
try (Connection connection = dataSource.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement("SELECT clob_data FROM my_table WHERE id = ?");
) {
preparedStatement.setLong(1, id);
try (ResultSet resultSet = preparedStatement.executeQuery()) {
if (resultSet.next()) {
Clob clob = resultSet.getClob("clob_data");
try (Reader reader = clob.getCharacterStream()) {
char[] buffer = new char[1024]; // 읽을 버퍼 크기 조정
StringBuilder result = new StringBuilder();
int charsRead;
while ((charsRead = reader.read(buffer, 0, buffer.length)) != -1) {
result.append(buffer, 0, charsRead);
}
return result.toString();
}
}
}
}
return null;
}
끄읏 -!
'DATABASE' 카테고리의 다른 글
SSH 터널링을 통한 MySQL dump 파일 생성 shell script 작성 (0) | 2024.01.10 |
---|---|
[MYSQL] USING절 vs ON절 (0) | 2023.07.17 |
Sequel Pro 에서 리턴 값 엑셀로 추출하는 법 (0) | 2023.06.17 |
Sequel Pro 속도 개선 (0) | 2023.06.16 |