Validar Dados Externos

Para validar qualquer tabela externa, você pode usar o procedimento DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE.

Para validar uma tabela externa particionada, consulte Validar Dados Particionados Externos. Esse procedimento inclui um parâmetro que permite especificar uma partição específica a ser validada.

Para validar uma tabela particionada híbrida, consulte Validação de Dados particionados híbridos. Esse procedimento inclui um parâmetro que permite especificar uma partição específica a ser validada.

Antes de validar uma tabela externa, você precisa criá-la. Para criar uma tabela externa, use o procedimento para seu tipo de tabela, DBMS_CLOUD.CREATE_EXTERNAL_TABLE. Por exemplo:

BEGIN
  DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE (
    table_name => 'CHANNELS_EXT' );
END;
/

Este procedimento verifica os arquivos de origem e os valida usando as opções de formato especificadas quando você cria a tabela externa.

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 é 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_TABLE (
     table_name => 'CHANNELS_EXT',
     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, VALIDATE_EXTERNAL_TABLE verifica todas as linhas e relata 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_TABLE (
     table_name => 'CHANNELS_EXT',
     rowcount => 100 
     stop_on_error => FALSE );
END; 
/

Consulte Procedimento VALIDATE_EXTERNAL_TABLE para obter informações detalhadas sobre os parâmetros DBMS_CLOUD.VALIDATE_EXTERNAL_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.