ORA-14400 : 삽입 된 파티션 키는 어떤 파티션에도 매핑되지 않습니다] / [ORA-14400 : 삽입 된 파티션 키는 어떤 파티션에도 매핑되지 않습니다.

문제 설명:

  Kettle을 사용하여 원본 데이터베이스에서 표준 데이터베이스로 데이터를 추출했습니다. 추출 프로세스 중에 오류가보고되었습니다. [ORA-14400 : 삽입 된 파티션 키가 어떤 파티션에도 매핑되지 않음] / [ORA-14400 : 삽입 된 파티션 키가 매핑되지 않음 어떤 파티션에도】

해결 과정 :

  Baidu 이후 ORA-14400이 테이블 파티셔닝에 문제가 있음을 발견했습니다.  

  1. 테이블이 테이블 파티션에 추가되었는지 확인합니다.    

user_tab_partitions t 에서 partition_name, high_value 선택 합니다. 여기서 table_name = ' table_name ' ;

  2. 테이블 파티션에 바인딩 된 필드의 이름을 쿼리합니다.   

select  *  from user_part_key_columns t where name = ' table_name ' ;

  3. 현재 테이블 파티션의 특정 상황보기

select  *  from user_tab_partitions t where table_name = ' table_name ' ;

  4. 테이블 파티션에 바인딩 된 필드의 최대 값을 쿼리합니다. 참고 : 여기서 table_name은 현재 테이블에 해당하는 원래 라이브러리의 소스 테이블이어야합니다.

 table_name t 에서 max ( key_column )  선택하십시오 .

  5. 쿼리 된 테이블 파티션 바인딩 필드의 최대 값을 테스트를 위해 현재 테이블에 삽입하면 오류가 발견됩니다.

삽입   TABLE_NAME (table_column1, table_column2 ......, KEY_COLUMN)  (값, 값 2, ......, key_value);

  6. 위의 단계를 거쳐 소스 테이블에 잘못된 데이터가있는 것으로 판단되고 잘못된 데이터의 시간 범위가 현재 파티션의 범위보다 크므로 ORA-14400 오류가 발생하지만 데이터를 유지해야하기 때문에 테이블 파티션이 확장됩니다.

  7. 범위가 바인드 된 필드의 최대 값보다 큰지 확인하려면 현재 테이블 파티션을 확장하십시오.

코드 복사
alter  table   table_name  add partition part_key_column_029  values less than (to_date ( ' 2029-01-01 00:00:00 ' , ' YYYY-MM-DD HH24 : MI : SS ' , ' NLS_CALENDAR = GREGORIAN ' )) 

       tablespace tablespace_name
 
       pctfree 10
 
        initrans 1
 
       maxtrans255, 

......, 

alter  table   table_name  add partition part_key_column_049  values less than (to_date ( ' 2049-01-01 00:00:00 ', ' YYYY-MM-DD HH24 : MI : SS ' , ' NLS_CALENDAR = GREGORIAN ' )) 

       테이블 스페이스 tablespace_name
 
       pctfree 10
 
        initrans 1
 
       maxtrans255,
코드 복사

  8. 끝. 다시 주전자를 사용하여 그림을 그리면 그림이 부드럽습니다.

추천

출처blog.csdn.net/lc547913923/article/details/78730823