Pergunta

Quando as tabelas de carregamento de SAS para Teradata, SAS carrega os dados (geralmente usando a facilidade FastLoad) e, em seguida, continua para baixo o script. No entanto, muitas vezes eu recebo erros críticos porque SAS diz os dados são carregados, mas Teradata ainda está reunindo os dados dentro da tabela.

Assim, os dados estão no banco de dados, mas não está pronto para ser utilizado. Eu ainda tenho que encontrar uma maneira de saber se os dados estão prontos para o processamento com outras tabelas. Eu fui bem sucedido em usar um comando sono, mas que é arbitrária e não confiável (porque quem sabe quanto tempo vai demorar).

Como você corrigir esse problema?

Foi útil?

Solução

Gostaria de tentar o seguinte:

  1. Teste se o DBCOMMIT = opção de conjunto de dados pode ajudar
  2. Se 1. não ajuda, use um loop sobre o função Open para consulta se a tabela está pronta, assim:

    data _null_;
      dsid=0;
      do i=1 to 3600 while(dsid<=0);
         ts=SLEEP(1,1);
         dsid=OPEN('TERADATA.MYTABLE','I');
      end;
      if dsid then dsid=CLOSE(dsid);
    run;
    

Outras dicas

Você poderia dormir, tentar consulta, pegar qualquer erro e loop até que está pronto?

A resposta de Refino Jon, você pode querer olhar para consultar se o tratamento terminou.

Eu não estou familiarizado com a Teradata, mas supostamente tem de haver uma tabela listando os sistemas de processos ativos. Pode possível usar passagem SQL para consulta obter os processos atuais.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top