복붙노트

[SQL] 왜 예외는 "데이터 매핑 오류의 [SQL0802] 데이터 변환을"는 무엇입니까?

SQL

왜 예외는 "데이터 매핑 오류의 [SQL0802] 데이터 변환을"는 무엇입니까?

나는 i 시리즈 / DB2에 익숙하지 않다. 그러나, 나는이 웹 사이트에서 작동 자사의 기본 데이터베이스로 사용을.

새 열은 최근 기존 테이블에 추가되었습니다. 내가 AS400를 통해 볼 때, 나는 다음과 같은 데이터 유형을 참조하십시오

Type: S
Length: 9
Dec: 2

이것은 소수점 전에 6 자리와 소수점 이후 두 자리 숫자 필드의 나에게 말한다.

나는 간단한 SELECT (MYTABLE FROM SELECT MYCOL)와 데이터를 쿼리 할 때, 나는 문제없이 다시 모든 레코드를 얻을. 나는 같은 열에서, DISTINCT GROUP BY 또는 ORDER BY를 사용하려고 할 때 그러나, 나는 다음과 같은 예외를 얻을 :

[SQL0802] Data conversion of data mapping error

나는 적어도 하나 개의 기록이 잘못된 데이터를 가지고 추론 한 - 내 DBA는 "공백"또는 "4 O"를 부르는. 어떻게 이런 일이 가능하지만 무엇입니까? 데이터베이스가 잘못된 데이터가 컬럼에 추가 할 시도 예외가 발생하지 않나요?

나는 그런 내 질문에 그 나쁜 기록을 필터링으로,이 문제를 해결받을 수있는 방법이 있습니까?

해결법

  1. ==============================

    1."4 O"는 공백 또는 공백 문자에 대한 EBCDIC 코드와 레코드에 새로운 공간에 배치의 기본 값은 0x40을 의미합니다.

    "4 O"는 공백 또는 공백 문자에 대한 EBCDIC 코드와 레코드에 새로운 공간에 배치의 기본 값은 0x40을 의미합니다.

    레거시 프로그램 / 작업은 소수점 데이터 에러를 도입 할 수 있습니다. 예를 들어, 새 파일이 생성되고 FMTOPT (* NOCHK) 옵션과 함께 CPYF 명령을 사용하여 작성 된 경우.

    그것을 해결하는 가장 쉬운 방법은 파일을 읽고 레코드를 수정하는 HLL 프로그램 (RPG)을 작성하는 것입니다.

  2. ==============================

    2.내가 찾을 수있는 유일한 해결책은 그들이 발견되면 다음 열에서 빈 값을 확인하고이 제로로 업데이트하는 스크립트를 작성하는 것이 었습니다.

    내가 찾을 수있는 유일한 해결책은 그들이 발견되면 다음 열에서 빈 값을 확인하고이 제로로 업데이트하는 스크립트를 작성하는 것이 었습니다.

  3. ==============================

    3.파일이 기록 형식 레벨 검사 [해제 한 경우 즉. LVLCHK (* NO)] 나, 즉 다음에 HLL 프로그램을 재정의한다. 새 열은 레코드의 말에 있지 특히,이 열에 잘못된 데이터 레코드를 작성할 수 있습니다 새 레코드로 다시 컴파일되지 않았다 (예. RPG, COBOL 등).

    파일이 기록 형식 레벨 검사 [해제 한 경우 즉. LVLCHK (* NO)] 나, 즉 다음에 HLL 프로그램을 재정의한다. 새 열은 레코드의 말에 있지 특히,이 열에 잘못된 데이터 레코드를 작성할 수 있습니다 새 레코드로 다시 컴파일되지 않았다 (예. RPG, COBOL 등).

    확인이 파일에 대한 쓰기 또는 갱신 기록에 기본 I / O를 사용하는 모든 프로그램이 컴파일되어 있는지 확인합니다.

  4. ==============================

    4.나는 정수로 키 열을 힘이 캐스팅하여이 오류를 해결할 수 있었다. 나는이에서 가입 변경 ...

    나는 정수로 키 열을 힘이 캐스팅하여이 오류를 해결할 수 있었다. 나는이에서 가입 변경 ...

    FROM DAILYV INNER JOIN BXV ON DAILYV.DAITEM=BXV.BXPACK
    

    ...이에...

    FROM DAILYV INNER JOIN BXV ON CAST(DAILYV.DAITEM AS INT)=CAST(BXV.BXPACK AS INT)
    

    ... 나는 테이블에 어떤 수정을하지 않았다. 이것은 정크 많이와 아주 오래 된, 아주 지저분한 데이터베이스입니다. 나는 많은 수정을했습니다, 그러나 그것은 진행중인 작품입니다.

  5. from https://stackoverflow.com/questions/13075585/why-am-i-getting-a-sql0802-data-conversion-of-data-mapping-error-exception by cc-by-sa and MIT license