Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa tarde pessoal.
Quero executar uma recarga parcial de uma tabela com concatenate, porém a recarga não é executada corretamente, ele só carrega um dos qvds.
Exemplo:
Arrecadação_Faturamento:
Replace
LOAD AutoNumberHash128(RARR_ID&ARRFATTIPO),
RARR_AMREFERENCIA,
//GREG_ID,
LOCA_ID,
CATG_ID,
RCTP_ID,
RCTP_DSRECEBIMENTOTIPO,
LCTP_ID,
LCTP_DSTIPOLANCAMENTO,
LCIT_ID,
LCIT_DSITEMLANCAMENTO,
LICT_ID,
LICT_DSITEMLANCAMENTOCONTABIL,
RARR_NNSEQUENCIATIPOLANCAMENTO,
RARR_NNSEQITEMTPLANC,
//RARR_TMULTIMAALTERACAO,
RARR_VLITEMARRECADACAO,
//UNEG_ID
ARRFATTIPO
FROM
$(v_QVDs_Dimensoes)\Arrecadacao_ordenada.qvd
(qvd);
Concatenate
Replace
LOAD AutoNumberHash128(RFAT_ID&ARRFATTIPO),
LCTP_ID,
LCTP_DSTIPOLANCAMENTO,
RFAT_AMREFERENCIA,
LCIT_ID,
LCIT_DSITEMLANCAMENTO,
LICT_ID,
LICT_DSITEMLANCAMENTOCONTABIL,
RFAT_VLITEMFATURAMENTO,
LOCA_ID,
CATG_ID,
//GREG_ID,
RFAT_NNSEQUENCIATIPOLANCAMENTO,
RFAT_NNSEQITEMTPLANC,
//RFAT_TMULTIMAALTERACAO
//UNEG_ID
ARRFATTIPO
FROM
$(v_QVDs_Dimensoes)\Faturamento_ordenado.qvd
(qvd);
Olá Edécio, tente assim:
REPLACE
LOAD * INLINE
[A,B,C
1,2,3
3,4,5];
Concatenate
ADD
LOAD * INLINE
[A,B
5,6
7,8];
Abraços.
Cesar
Olá Edecio,
Tenta o código abaixo.
Arrecadação_Faturamento:
Replace
LOAD AutoNumberHash128(RARR_ID&ARRFATTIPO) as CHAVE,
ARRFATTIPO,
CATG_ID,
LCIT_DSITEMLANCAMENTO,
LCIT_ID,
LCTP_DSTIPOLANCAMENTO,
LCTP_ID,
LICT_DSITEMLANCAMENTOCONTABIL,
LICT_ID,
LOCA_ID,
RARR_AMREFERENCIA,
RARR_NNSEQITEMTPLANC,
RARR_NNSEQUENCIATIPOLANCAMENTO,
RARR_VLITEMARRECADACAO,
RCTP_DSRECEBIMENTOTIPO,
RCTP_ID,
Null() as RFAT_AMREFERENCIA,
Null() as RFAT_NNSEQITEMTPLANC,
Null() as RFAT_NNSEQUENCIATIPOLANCAMENTO,
Null() as RFAT_VLITEMFATURAMENTO
FROM $(v_QVDs_Dimensoes)\Arrecadacao_ordenada.qvd (qvd);
Replace
LOAD AutoNumberHash128(RFAT_ID&ARRFATTIPO) as CHAVE,
ARRFATTIPO,
CATG_ID,
LCIT_DSITEMLANCAMENTO,
LCIT_ID,
LCTP_DSTIPOLANCAMENTO,
LCTP_ID,
LICT_DSITEMLANCAMENTOCONTABIL,
LICT_ID,
LOCA_ID,
Null() as RARR_AMREFERENCIA,
Null() as RARR_NNSEQITEMTPLANC,
Null() as RARR_NNSEQUENCIATIPOLANCAMENTO,
Null() as RARR_VLITEMARRECADACAO,
Null() as RCTP_DSRECEBIMENTOTIPO,
Null() as RCTP_ID,
RFAT_AMREFERENCIA,
RFAT_NNSEQITEMTPLANC,
RFAT_NNSEQUENCIATIPOLANCAMENTO,
RFAT_VLITEMFATURAMENTO
FROM $(v_QVDs_Dimensoes)\Faturamento_ordenado.qvd (qvd);
O QV concatena automaticamente tadas as tabelas carregadas, que tem todos os nomes des campos iguais, então basta "criar" um campo com valor nulo nas tabelas onde o campo não existe, que o QV faz o resto.
Abraço.
Aderlan, muito obrigado por sua ajuda mas não funcionou da forma como você informou.
Utilizando os dois replaces, ele substituí o nodo da nuvem, entretanto só traz informações do segundo load (segundo qvd). Ele não está concatenando o resultado.
Se precisar de mais algum detalhe é só avisar.
Att,
Edécio.
Olá Edécio,
eu já tive esse mesmo problema que você está tendo com a recarga parcial. Normalmente eu evito o REPLACE/ADD e se possível rodo com carga limitada na opção Debug, mas se ainda sim for mais viável a recarga parcial para você tente executar com somente um comando replace no início da carga, porque o segundo substitui os dados carregados pelo primeiro
Abraços,
Cesar.
Cesar, obrigado pela resposta.
Já foi feito usando o replace só no primeiro load, porém ele gera duas tabelas e não uma concatenada. Seria melhor utilizar o replace devido a grande quantidade de dados carregados (A carga dura em média 1:30h).
Att,
Edécio.
Edecio,
O que exatamente você está tendando fazer?
Você tem uma tabela com vários e campos e muitas linhas, e outra com campos similares a muitas linhas também, certo?
Você quer colcar uma tabela "embaixo" da outra ou precisa colocar os campos da segunda tabela ao lado da primeira?
Ex:
TAB1:
A B
1 X
2 Y
3 W
TAB2:
A C
1 H
2 J
Resultado:
A B C
1 X H
2 Y J
3 W -
Aderlan, obrigado pela resposta.
Eu quero concatenar mesmo e não realizar uma inner join. Quero uma tabela abaixo da outra.
Att,
Edécio.
Olá Edécio, tente assim:
REPLACE
LOAD * INLINE
[A,B,C
1,2,3
3,4,5];
Concatenate
ADD
LOAD * INLINE
[A,B
5,6
7,8];
Abraços.
Cesar
Cesar, muito obrigado por sua resposta e peço desculpas por não ter respondido antes, me faltou tempo.
Sua solução funcionou com o concatenate add, porém tive que executar um drop table antes da tabela.
Obrigado pela ajuda!