2014-11-14 3 views
2

하나의 Oracle DB에서 다른 DB 로의 IPC 매핑을 사용하여 간단한 데이터로드를 시도하고 있습니다.Informatica Powercenter 데이터 잘림/오버플로 오류

소스 테이블 구조는 다음입니다 :

ID NUMBER; 
C_VALUE VARCHAR2 (16); 
C_CODE VARCHAR2 (16); 
SN NUMBER; 
SU NUMBER; 

목표 테이블 구조는 다음입니다 :

:

ID NUMBER 
C_VALUE VARCHAR2 (20) 
SSID NUMBER 
LOADID NUMBER 
LOADROWNUMBER NUMBER 
DATEBEGIN DATE 
DATEEND DATE 

가 나는 다음과 같은 오류가있어 워크 플로우를 실행 해요 때

8340||Error: Target table [TYPE_ACC_RRB] data truncation/overflow error.

매핑을 디버깅하려고 할 때 입력 문자열이인 경우필드는 유니 코드 문자로 표시되며 길이는 바이트로 두 배가됩니다.

인포매티카는 바이트의 문자를 문자열 필드의 길이로 계산합니까? 바이트가 아닌 문자로 표시하는 방법은 무엇입니까? 내가 세션 로그에서 볼 무엇

은 다음과 같습니다

Server Mode: [UNICODE] 
Server Code page: [UTF-8 encoding of Unicode] 
The session sort order is [Binary]. 
Source database connection [RBO01] code page: [MS Windows Cyrillic (Slavic)] 
Target database connection [STG1] code page: [MS Windows Cyrillic (Slavic)] 

내 매핑 :

enter image description here

+0

예쁘게 직접. 그림을보세요 –

+1

예 첫 번째 설정 인 "Reject Truncated/Overflowed rows"설정이 꺼져 있고 대상 테이블에서 잘린 문자열이 보입니다. exaple의 경우 원본에서 값 "пассивный"이었지만 대상 테이블에서는 "пассивны"가되었습니다. –

+1

도움이되지 않았습니다. 먼저 소스 한정자와 표현식 변환에서 문자열을 nstring으로 변경했습니다. Runned 매핑 및 동일을 얻었다. 그런 다음 대상 정의에서 varchar2를 nvarchar2로 변경했습니다. 여전히 오류가 발생합니다. 그런 다음이 매핑의 디버거를 실행하려고했습니다. 디버거에서이 매핑을 통해 mt 데이터를 전달하려고했는데 데이터가 오류없이 성공적으로 전달되었습니다. 그러나 데이터가 이상한 방식으로 표시됩니다. - Informatica는 유니 코드 문자 대신 바이트를 표시합니다. http://andsh.ru/mapping_debug.png –

답변

1

이 솔루션은 IPC 서버

에 환경 변수 NLS_LANG = russian_russia.cl8mswin1251을 정의하는 것이 었습니다
관련 문제