Comando APPEND

Combina registros de duas ou mais tabelas do Analytics anexando-os em uma nova tabela do Analytics.

Sintaxe

APPEND tabela_1; tabela_2; <...n> TO nome_tabela <COMMONFIELDS> <OPEN> <ASCHAR> <ALLCHAR>

Parâmetros

Nome Descrição
tabela_1; tabela_2; <...n>

As tabelas a serem anexadas.

Os registros de cada tabela são anexados na ordem na qual você especifica as tabelas. A tabela de saída contém os registros da tabela_1, seguidos dos registros da tabela_2, e assim por diante.

As tabelas de origem podem ter estruturas de registro diferentes ou idênticas e podem ser ordenadas ou não ordenadas.

TO nome_tabela

A localização para onde enviar os resultados do comando:

  • nome_tabela salva os resultados em uma tabela do Analytics

    Especifique nome_tabela como uma cadeia entre aspas com uma extensão de arquivo .FIL. For exemplo: TO "Saída.FIL"

    Por padrão, o arquivo de dados da tabela (.fil) é salvo na pasta que contém o projeto do Analytics.

    Use um caminho de arquivo absoluto ou relativo para salvar o arquivo de dados em uma pasta diferente já existente:

    • TO "C:\Saída.FIL"
    • TO "Resultados\Saída.FIL"

    Nota

    Os nomes de tabela são limitados a 64 caracteres alfanuméricos, sem contar a extensão .FIL. O nome pode incluir o caractere de sublinhado ( _ ) mas nenhum outro caractere especial e nenhum espaço. O nome não pode começar com um número.

COMMONFIELDS

opcional

Somente os campos comuns a todas as tabelas sendo anexadas são incluídos na tabela de saída.

Se você omitir COMMONFIELDS, todos os campos de todas as tabelas serão incluídos na tabela de saída. Valores em branco são exibidos na tabela de saída quando não existir nenhum campo nas tabelas de origem.

Dica

Para ver diagramas e capturas de tela ilustrando as duas opções, consulte Anexando tabelas.

Nota

O comando APPEND não é compatível com a anexação de campos calculados. Para obter mais informações, consulte Campos calculados não são compatíveis.

O que torna os campos comuns?

Para campos serem considerados comuns, eles precisam:

  • ocorrer em cada tabela de origem
  • ter um nome físico idêntico
  • pertencer à mesma categoria de dados:
    • Caractere
    • Numérico
    • Datahora
    • Lógico

Nome idêntico, categoria de dados diferente

Se dois campos tiverem um nome idêntico, mas pertencerem a diferentes categorias de dados, uma mensagem de erro será exibida e o comando APPEND não será executado.

A mensagem de erro contém todos os conflitos de categoria de dados no conjunto de tabelas especificado por APPEND. A mensagem é salva no log de comando.

Nota

Você pode evitar essa situação usando ASCHAR ou ALLCHAR para harmonizar categorias de dados.

OPEN

opcional

Abre a tabela criada pelo comando após a execução do comando. Válido apenas se o comando criar uma tabela de saída.

ASCHAR

opcional

Harmoniza campos com nomes idênticos, mas categorias de dados diferentes, convertendo campos não caractere para a categoria de dados de caractere.

Por exemplo, você anexa duas tabelas em que o campo ID_Funcionário é definido como dados de caractere em uma tabela e dados numéricos na outra tabela. O campo numérico ID_Funcionário é convertido em dados de caractere e os dois campos são anexados sem causar erro.

ASCHAR é ignorado se ALLCHAR também é especificado.

ALLCHAR

opcional

Converte todos os campos não caractere para a categoria de dados de caractere em todas as tabelas sendo anexadas.

Essa conversão global para dados de caractere garante que todos os campos com nomes idênticos serão anexados sem causar erro.

Nota

Após a anexação, você pode alterar a categoria de dados de todo um campo anexado, caso necessário para os dados contidos no campo.

Exemplos

Anexar três tabelas de transações mensais

O exemplo a seguir anexa três tabelas de transações mensais e gera uma tabela de transações trimestrais que inclui todos os campos das três tabelas de origem:

APPEND Trans_Jan; Trans_Fev; Trans_Mar TO Trans_T1

Anexar três tabelas de funcionários e incluir apenas os campos comuns

O exemplo a seguir anexa três tabelas de divisão de funcionários e gera uma tabela mestre de funcionários que inclui apenas campos comuns às três tabelas de origem:

APPEND Funcionários_central; Funcionários_leste; Funcionários_oeste TO Funcionários_mestre COMMONFIELDS

Anexar três tabelas de funcionários e harmonizar os campos com categorias de dados diferentes

Os exemplos abaixo anexam três tabelas de funcionários de divisões diferentes em que alguns campos com o mesmo nome usam categorias de dados diferentes.

O primeiro exemplo converte campos não caractere para a categoria de dados de caractere apenas quando necessário para a harmonização:

APPEND Funcionários_central; Funcionários_leste; Funcionários_oeste TO Funcionários_mestre ASCHAR

O segundo exemplo converte campos não caractere para a categoria de dados de caractere, independentemente de a conversão ser necessária para a harmonização ou não:

APPEND Funcionários_central; Funcionários_leste; Funcionários_oeste TO Funcionários_mestre ALLCHAR

Observações

Nota

Para obter mais informações sobre o funcionamento desse comando, consulte a Ajuda do Analytics.

Como funciona?

O comando APPEND combina registros de duas ou mais tabelas anexando-os e criando uma nova tabela. Anexar significa adicionar um grupo de registros na parte inferior de outro grupo de registros.

Campos da tabela de origem com nomes físicos idênticos e categorias de dados idênticas são diretamente anexados uns aos outros.

Campos com nomes físicos únicos em todas as tabelas de origem são adicionados à tabela de saída, mas não são diretamente anexados a nenhum outro campo.

Dica

Se quiser anexar diretamente campos com nomes inconsistentes, padronize os nomes físicos dos campos nos layouts das respectivas tabelas antes de anexar. (Supondo que os campos pertencem à mesma categoria de dados ou que você usa ASCHAR ou ALLCHAR para harmonizar a categoria de dados dos campos.)

Quando usar APPEND

Use APPEND quando quiser combinar dados de várias tabelas com uma estrutura idêntica ou similar. Por exemplo, APPEND é uma boa escolha para combinar tabelas mensais ou trimestrais em uma tabela anual.

Dica

Uma única execução do comando APPEND pode substituir várias execuções do comando EXTRACT com a opção APPEND.

Não é um substituto para JOIN ou DEFINE RELATION

APPEND geralmente não é substituto do comando JOIN ou DEFINE RELATION, pois não permite que você inclua ou exclua registros com base em valores correspondentes ou não correspondentes em um campo-chave comum. Com APPEND, todos os registros de cada tabela de origem são incluídos na tabela de saída.

Anexação de tabelas totalmente diferentes

Você pode anexar tabelas totalmente diferentes, isso é, duas ou mais tabelas que não tenham nenhum campo em comum. Embora não seja o uso principal pretendido para o comando APPEND, pode haver situações em que anexar tabelas diferentes serve para uma finalidade analítica.

Anexação de campos de datahora

Para dois ou mais campos de datahora serem anexados, as seguintes condições devem ser atendidas:

  • nomes físicos idênticos
  • categoria de dados idêntica (datahora)
  • subtipos de dados idênticos (data, datahora ou hora)
  • uso idêntico do indicador de fuso horário, usado ou não usado, por todos os campos a serem anexados

Se dois campos de datahora tiverem nome idêntico, mas não atenderem a uma das outras condições, uma mensagem de erro é exibida e o comando APPEND não é executado.

A mensagem de erro contém todas as condições de falha no conjunto de tabelas especificado por APPEND. A mensagem é salva no log de comando.

Nota

Você pode harmonizar campos datahora diferentes convertendo-os para a categoria de dados de caractere para depois anexá-los. Essa abordagem permite combinar os dados em uma única tabela. No entanto, dependendo da natureza dos dados de origem, pode não ser possível converter os dados combinados em dados datahora.

Harmonização automática

Em algumas situações, o comando APPEND harmoniza automaticamente os campos para anexá-los:

Categorias de dados de campos Harmonização executada
Caractere
  • Campos de comprimentos diferentes são harmonizados.
  • Os diferentes tipos de dados de caracteres como personalizado, PCASCII e EBCDIC são harmonizados mediante a conversão dos campos para o tipo de dados ASCII ou UNICODE.
Numérico
  • Campos de comprimentos diferentes são harmonizados. Os campos são convertidos para o tipo de dados do ACL.
  • Números diferentes de casas decimais definidas são harmonizados. As casas decimais são padronizadas como o maior número de casas, com zeros à direita adicionados aos valores numéricos, se necessário. Os campos são convertidos para o tipo de dados do ACL.
  • Os diferentes tipos de dados numéricos como impressão, flutuante, EBCDIC e micro são harmonizados mediante a conversão dos campos para o tipo de dados do ACL.
Datahora
  • Formatos diferentes de data, datahora ou hora nos dados de origem são harmonizados convertendo os campos para os formatos padrão do Analytics:
    • AAAAMMDD
    • AAAAMMDD hh:mm:ss
    • hh:mm:ss

Quando a harmonização automática não é realizada

O Analytics não harmoniza automaticamente os campos nas seguintes situações. Uma mensagem de erro é exibida e a operação anexar não é executada.

  • Dois campos com um nome idêntico pertencem a diferentes categorias de dados.
  • Dois campos datahora com um nome idêntico pertencem a diferentes subtipos de datahora (data, datahora ou hora).
  • Dois campos datahora com um nome idêntico são inconsistentes na maneira que usam o indicador de fuso horário.

Nota

A harmonização de campos especificada pelo usuário para campos com nomes idênticos, mas categorias de dados diferentes, é explicada acima. Para obter mais informações, consulte ASCHAR e ALLCHAR.

Campos calculados não são compatíveis

O comando APPEND não é compatível com a anexação de campos calculados. Ao anexar tabelas, todos os campos calculados nas tabelas são automaticamente excluídos da tabela de saída.

Se um campo calculado em uma tabela de origem tiver o mesmo nome que um campo físico em outra tabela de origem, uma mensagem de erro será exibida e o comando APPEND não será executado.

Dica

Você pode anexar um campo calculado primeiro extraindo-o para converter o campo em um campo físico. (Para obter mais informações, consulte Comando EXTRACT.) Use, então, a tabela extraída na operação de anexação.

Outra abordagem é recriar o campo calculado na tabela de saída anexada.

Campos de nota de registro não são compatíveis

O comando APPEND não é compatível com a anexação de campos de notas de registros. Ao anexar tabelas, todos os campos de nota de registro nas tabelas de origem são automaticamente excluídos da tabela de saída.

Se um campo de nota de registro em uma tabela de origem tiver o mesmo nome que um campo físico em outra tabela de origem, uma mensagem de erro será exibida e o comando APPEND não será executado.

Um campo de nota de registro é automaticamente gerado pelo Analytics ao anexar uma nota a um registro.

Comprimento de registro

Se incluir todos os campos de todas as tabelas de origem ao anexar, o comprimento de registro na tabela de saída poderá ser maior que o registro mais longo nas tabelas de origem.

Uma mensagem de erro é exibida se o comprimento de registro de saída ultrapassar o máximo de 32 KB do Analytics.

Anexação e casas decimais

Comportamento específico rege a anexação de campos numéricos que incluem casas decimais.

Configuração decimal

O comando APPEND usa o número de casas decimais definido na configuração Dec na definição de campo no layout da tabela.

Nota

A configuração Dec pode não ser a mesma que o número real de casas decimais nos dados de origem. Casas decimais que ultrapassem a configuração Dec são não definidas e arredondadas nos cálculos.

Configurações decimais inconsistentes

Se os campos numéricos anexados tiverem configurações Dec inconsistentes, os campos serão convertidos para o tipo de dados ACL e automaticamente harmonizados na configuração mais longa de Dec.

Qualquer casa decimal nos arquivos de dados de origem que ultrapasse a configuração Dec mais longa é excluída da tabela de saída gerada por APPEND.

Configuração decimal consistente

Se os campos numéricos anexados tiverem uma configuração Dec consistente, nenhuma conversão de tipo de dados ou harmonização ocorrerá.

Qualquer casa decimal nos arquivos de dados de origem que ultrapasse a configuração Dec é incluída da tabela de saída gerada por APPEND.

Ordenação

Qualquer ordem de classificação existente nas tabelas de origem é mantida separadamente nos respectivos conjuntos de registros na tabela de saída.

Mesmo se todos os registros em todas as tabelas de origem forem ordenados, a tabela de saída é considerada não ordenada, pois os registros de origem são anexados como grupos, sem considerar nenhuma ordem de classificação existente nas tabelas de origem.

Por exemplo, se você anexar tabelas mensalmente ou trimestralmente para criar uma tabela anual, toda a ordenação interna dos dados mensais ou trimestrais é mantida. Se necessário, é possível ordenar a tabela de saída depois de realizar a operação de anexação.

Como funciona a ordem do campo

Campos comuns

Campos comuns em tabelas de origem não têm de estar na mesma ordem para ser anexados.

Por exemplo, esses campos são corretamente anexados, mesmo se estiverem em uma ordem diferente:

Tabela Campos
tabela_1 Sobrenome | Nome | Nome_do_meio
tabela_2 Nome | Nome_do_meio | Sobrenome

A primeira tabela especificada no comando APPEND dita a ordem dos campos na tabela de saída. Portanto, no exemplo acima, a ordem na tabela de saída é:

  • Sobrenome | Nome | Nome_do_meio

Campos não comuns

Campos não comuns nas tabelas de origem aparecem na tabela de saída na ordem em que aparecem no grupo selecionado de tabelas de origem.

Por exemplo, ao anexar essas duas tabelas:

Tabela Campos
tabela_1 Título | Sobrenome | Nome | Nome_do_meio
tabela_2 Nome | Nome_do_meio | Sobrenome | Data_de_nascimento

a ordem da tabela de saída é:

  • Título | Sobrenome | Nome | Nome_do_meio | Data_de_nascimento

Título de coluna alternativo

Títulos de coluna alternados nas tabelas de origem aparecem na tabela de saída. Se mais de uma tabela de origem tiver um título alternativo da coluna para o mesmo campo, o título da primeira tabela selecionada tem precedência.

Guia de scripting do ACL 14.1