DB
[Oracle] DB link CLOB 타입 오류
ChanPumpkin
2022. 9. 29. 23:06
ORACLE DB link CLOB 오류 발생
Oracle에서 테이블을 DB link 방식으로 연결해서 SELECT를 해야 하는데, CLOB 컬럼은 데이터베이스 링크로 테이블 컬럼 조회가 안 되는 문제가 발생하였다.
LOB타입
그전에 LOB타입에 대해서 먼저 알아야 할 거 같다.
LOB 타입은 Large Object라는 의미로서, 대용량의 데이터를 저장하고 관리하기 위해서 오라클에서 제공하는 타입이다. 사진, 영상 등의 대용량 데이터도 DB로 처리할 수 있도록 하기 위해 생겨난 타입
LOB타입 종류
BLOB | Internal | 바이너리 데이터 저장 (최대 4G 저장) 컴퓨터가 인식하는 모든 파일 기록 |
CLOB | Internal | Single-byte character data 저장(최대 4G 저장) 텍스트 데이터 저장 |
NCLOB | Internal | Multi-byte character data 저장(최대 4G 저장) NCHAR data와 같은 national character set(9i 이상 유니코드) |
BFILE | External(OS) | OS 파일에 저장된 데이터의 포인터 저장 (최대 4G 저장) READ ONLY |
왜 오류가 발생..?
오라클에서는 LOB 타입에 대해 원격지 DB 간의 조회-삽입(수정)을 지원하지 않기 때문에, 발생하는 문제
해결 방법
로컬에 원격지의 테이블을 만들어준다.
create table temp_원격테이블
as
select * from 원격테이블@DB링크명
where 1=2;
원격지 테이블을 그대로 insert해온다.
insert into temp_원격테이블
select * from 원격테이블@DB링크명
이제 로컬 테이블에서 사용한다.
select * from temp_원격테이블
where rownum = 1;