반응형
- 결론 : 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바이트가 넘는 데이터가 이관된 경우가 있었는데,
이 경우는 별도 포스팅 하겠다.
반응형
'2F(IT) > 툴 설정 및 사용법' 카테고리의 다른 글
| 인포매티카 프로세스 확인 (3) | 2023.12.09 |
|---|---|
| [IntelliJ] 인텔리제이 단축키 (2) | 2023.11.12 |
| [DBeaver]DB 공백으로 쿼리 오류 발생 시 (1) | 2023.10.22 |
| [DBeaver] DBeaver 단축키 (3) | 2023.10.22 |
| [DBeaver] DBeaver 설정 팁 (2) | 2023.04.30 |