Movendo tabelas aninhadas | Qlik Cloud Ajuda
Ir para conteúdo principal Pular para conteúdo complementar

Movendo tabelas aninhadas

Última atualização: 08/09/2026

O Qlik Talend Data Integration oferece suporte à movendo de tabelas Oracle contendo colunas que são tabelas aninhadas ou tipos definidos. Para habilitar essa funcionalidade, selecione a opção Oferecer suporte a tabelas aninhadas nas configurações do conector.

A tarefa de dados cria as tabelas de destino das tabelas Oracle aninhadas como tabelas regulares sem uma restrição exclusiva. Como você provavelmente precisará unir as tabelas principal e secundária para obter dados significativos, é importante criar manualmente um índice não exclusivo na coluna NESTED_TABLE_ID na tabela secundária de destino. A coluna NESTED_TABLE_ID pode então ser usada na cláusula JOIN ON, junto com a coluna principal correspondente ao nome da tabela filho. Além disso, a criação desse índice melhorará o desempenho quando os dados da tabela secundária de destino forem atualizados/excluídos pela tarefa de dados.

É recomendável configurar a tarefa para ser interrompida após a conclusão do Carregamento total. Depois que o Carregamento total for concluído, crie índices não exclusivos manualmente para todas as tabelas secundárias replicadas do movido no destino e, em seguida, retome a tarefa.

Se uma tabela aninhada capturada for adicionada a uma tabela pai existente (capturada ou não capturada), a tarefa de dados a tratará corretamente, mas o índice não exclusivo da tabela de destino correspondente não será criado. Observe que, nesse caso, se a tabela filho de destino ficar extremamente grande, o desempenho poderá ser afetado. Nesse caso, é recomendável interromper a tarefa, criar o índice e depois retomar a tarefa. No entanto, antes de retomar a tarefa, recomendamos que você crie exibições que permitirão que as tabelas movido sejam niveladas. Essas Exibições devem conter instruções JOIN que correspondam às suas necessidades específicas de nivelamento, conforme explicado no exemplo Abaixo.

Pré-requisitos

Certifique-se de Mover tabelas pai para todas as tabelas aninhadas movido. Tanto as tabelas pai (as tabelas que contêm a coluna da tabela aninhada) quanto as tabelas filho (ou seja, aninhadas) estarão disponíveis para seleção no Qlik Talend Data Integration.

Tipos de tabelas aninhadas compatíveis

Os seguintes tipos de tabelas aninhadas são compatíveis:

  • Tipo de dados
  • Objeto definido pelo usuário

Limitações

  • Somente um nível de aninhamento é aceito.
  • O Qlik Talend Data Integration não verifica se as tabelas pai e filho estão selecionadas para movendo. Em outras palavras, é possível selecionar uma tabela pai sem um filho, e vice-versa.

Como tabelas aninhadas são movido

As tabelas pai e aninhada são movido em relação ao destino, da seguinte forma:

  • A tabela pai é criada no destino de forma semelhante à fonte, em que cada coluna aninhada é definida como RAW(16). Em cada linha da tabela pai, essa coluna conterá o mesmo valor que as linhas aninhadas da tabela filha correspondente na coluna NESTED_TABLE_ID.

  • A tabela filha é criada de forma idêntica à fonte, mas com uma coluna NESTED_TABLE_ID adicional, conforme mencionado anteriormente.

Exemplo de instrução JOIN

Vamos supor que as seguintes definições existam na fonte Oracle:

  • CREATE OR REPLACE TYPE my_tab_t AS TABLE OF VARCHAR2(30);
  • CREATE TABLE my_parent_table (id NUMBER PRIMARY KEY, col1 my_tab_t) NESTED TABLE col1 STORE AS col1_tab;

Nesse caso, a tarefa de dados normalmente criará duas tabelas de destino, como a seguir:

  • CREATE TABLE my_parent_table (id NUMBER PRIMARY KEY, col1 RAW(16));
  • CREATE TABLE col1_tab(nested_table_id RAW(16), column_value VARCHAR2(30));

O comando JOIN para nivelar as duas tabelas de destino pode ser definido da seguinte forma:

  • Select id, column_value from my_parent_table LEFT OUTER JOIN col1_tab child ON child.nested_table_id = parent.col1;
Nota informativaLEFT OUTER JOIN deve ser usado se as tabelas pai contiverem registros que não existam na tabela filho.

Esta página ajudou?

Se você encontrar algum problema com esta página ou seu conteúdo – um erro de digitação, uma etapa ausente ou um erro técnico – avise-nos!