Validar Dados particionados externos

Para validar uma tabela separada externa, você pode usar o procedimento DBMS_CLOUD.VALIDATE_EXTERNAL_PART_TABLE. Esse procedimento inclui um parâmetro que permite especificar uma partição específica a ser validada.

Antes de validá-la, você precisa criá-la. Para criar uma tabela particionada externa, use o procedimento DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE (consulte Consultar Dados Particionados Externos (com Cláusula de Particionamento) para obter mais detalhes):

BEGIN
  DBMS_CLOUD.VALIDATE_EXTERNAL_PART_TABLE (
    table_name => 'PET1',
    partition_name => 'P1');
END;
/

Esse procedimento verifica os arquivos de origem da partição P1 e os valida usando as opções de formato especificadas quando você cria a tabela particionada externa.

A validação de uma tabela particionada por padrão validará todas as partições sequencialmente até que rowcount seja atingido. Se você especificar partition_name, somente uma partição específica será validada.

A operação de validação, por padrão, verifica todas as linhas nos arquivos de origem e para quando uma linha é rejeitada. Se quiser validar somente um subconjunto de linhas, use o parâmetro rowcount. Quando o parâmetro rowcount é definido, a operação de validação verifica as linhas e é interrompida quando uma linha é rejeitada ou quando o número especificado de linhas rowcount é validado sem erros.

Por exemplo, a seguinte operação de validação verifica 100 linhas e para quando uma linha é rejeitada ou quando 100 linhas são validadas sem erros:

BEGIN 
  DBMS_CLOUD.VALIDATE_EXTERNAL_PART_TABLE (
     table_name => 'PET1',
     rowcount => 100 ); 
END; 
/

Se você não quiser que a validação seja interrompida quando uma linha for rejeitada e quiser ver todas as linhas rejeitadas, defina o parâmetro stop_on_error como FALSE. Nesse caso, DBMS_CLOUD.VALIDATE_EXTERNAL_PART_TABLE verifica todas as linhas e reporta todas as linhas rejeitadas.

Se quiser validar somente um subconjunto de linhas, use o parâmetro rowcount. Quando rowcount é definido e stop_on_error é definido como FALSE, a operação de validação verifica as linhas e é interrompida quando o número especificado de linhas é rejeitado ou quando o número especificado de linhas é validado sem erros. Por exemplo, o exemplo a seguir verifica 100 linhas e para quando 100 linhas são rejeitadas ou quando 100 linhas são validadas sem erros:

BEGIN
  DBMS_CLOUD.VALIDATE_EXTERNAL_PART_TABLE (
     table_name => 'PET1',
     rowcount => 100 
     stop_on_error => FALSE );
END; 
/

Consulte Procedimento VALIDATE_EXTERNAL_PART_TABLE para obter mais informações sobre DBMS_CLOUD.VALIDATE_EXTERNAL_PART_TABLE.

Consulte Exibir Logs para Validação de Dados para ver os resultados das operações de validação nas tabelas dba_load_operations e user_load_operations.