2F(IT)/툴 설정 및 사용법

POSTGRESQL to ORACLE 데이터 이관 오류

백화점장 2023. 11. 4. 20:28
반응형

- 결론 : TARGET쪽 컬럼 사이즈를 늘리거나, 컬럼 타입을 NVACHAR2로 변경해주면 된다.

-- 컬럼사이즈 변경
ALTER TABLE 테이블이름 MODIFY (컬럼이름 VARCHAR2(2000)); 

-- 컬럼타입 변경
ALTER TABLE 테이블이름 MODIFY (컬럼이름 NVARCHAR2(새로운길이));

- 상황

 

1. 인포매티카(informatica)를 활용하여 postgreSQL에서 Oracle로

     데이터 이관 중 몇개의 데이터가 전송 되지않는 오류가 발생했다.

 

2. 에러 내용은 "컬럼의 사이즈에 비해 데이터가 크다"는 오류

     (SOURCE TARGET 둘다 에러난 컬럼 타입 및 사이즈는 VARCHAR2(1000))

 

3. SOURCE쪽(postgre)에서 오류난 컬럼의 데이터를 확인 (컬럼에 들어간 데이터의 확인)

SELECT LENGTH(컬럼명)          AS LENGTH 
     , OCTET_LENGTH(컬럼명)    AS OCTET_LENGTH
  FROM 테이블명
 WHERE 오류 컬럼 조건

- LENGTH : 컬럼에 들어있는 데이터의 길이를 보여줌

- OCTET_LENGTH : 컬럼에 들어있는 바이트의 수

 

4. 조회 결과 

조회 결과

- postgreSQL VARCHAR2(1000)이면 "1000글자"가 들어감

- ORACLE VARCHAR2(1000)이면 "1000바이트"가 들어감

- 때문에 위 결과처럼 postgre의 637글자의 데이터의 바이트 수는 1,405이기 때문에 

   ORACLE 쪽으로 데이터가 이관되지 못했던 것이다.

- postgre에서 1000바이트가 넘는 데이터가 이관된 경우가 있었는데, 

  이 경우는 별도 포스팅 하겠다.

반응형