Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Pessoal,
O banco de dados foi alterado, de Firebird para Postgresql porém estou revendo os cenários para adequação mas fiquei na duvida pois utilizo no LOAD*, o calendário mas não funciona o Load*, no postgresql - alguem sabe como resolver?
ODBC CONNECT TO PostgreSQL30;
// ------- Viagem --------- //
LOAD *,
YEAR(DT_EMISSAO) AS ANO_FAT,
MONTH(DT_EMISSAO) AS MES_FAT,
DAY(DT_EMISSAO) AS DIA_FAT,
DATE(DT_EMISSAO) AS DATA_FAT;
SQL SELECT
A.NR_VIAGEM,
A.NR_VIAGEM_SEQ,
A.CD_VEICULO,
A.CD_MOTORISTA,
A.DT_SAIDA,
A.DT_RETORNO,
A.KM_SAIDA,
A.KM_RETORNO,
A.MM_OBSERVACAO,
A.FL_BLOQUEADA,
A.HM_SAIDA,
A.HM_RETORNO,
B.NM_MOTORISTA,
C.NR_ORDEM,
C.PC_COMISSAO,
C.VL_BASE_COMISSAO,
C.VL_COMISSAO,
D.CD_SITUACAO,
D.VL_TOTAL AS VL_FRETE,
D.CD_LOC_COLETA AS LOCAL_COLETA,
D.CD_LOC_EMISSAO,
D.CD_LOC_ENTREGA AS LOCAL_CHEGADA,
D.QT_PESO_FRETE,
D.CD_NATCARGA,
D.DT_EMISSAO,
D.NR_CONHEC AS NR_CONHEC_VIAG,
D.SR_CONHEC AS SR_CONHEC_VIAG
FROM VIAGEM A LEFT JOIN MOTORISTA B ON
A.CD_MOTORISTA = B.CD_MOTORISTA
LEFT OUTER JOIN CONHECTOVM C ON
A.NR_VIAGEM = C.NR_VIAGEM AND
A.NR_VIAGEM_SEQ = C.NR_VIAGEM_SEQ
LEFT OUTER JOIN CONHECTO D ON
C.NR_ORDEM = D.NR_ORDEM
WHERE D.DT_EMISSAO > '31.12.2009' AND D.CD_SITUACAO <> '3';
Bom dia Andre,
Faça a carga como comentado com SQL Select e depois o load residente com o nome do campo carregado.
Talvez ele esteja sendo carregado como D.DT_EMISSAO
Boa tarde Andre,
Já chegaste a fazer o seguinte teste?
- Somente SQL SELECT sem o LOAD;
- Posterior um concatenate para criar os campos adicionais;
Talvez assim:
// ------- Viagem --------- //
LOAD *,
YEAR(DT_EMISSAO) AS ANO_FAT,
MONTH(DT_EMISSAO) AS MES_FAT,
DAY(DT_EMISSAO) AS DIA_FAT,
DATE(DT_EMISSAO) AS DATA_FAT;
SQL SELECT
A.NR_VIAGEM,
A.NR_VIAGEM_SEQ,
A.CD_VEICULO,
A.CD_MOTORISTA,
A.DT_SAIDA,
A.DT_RETORNO,
A.KM_SAIDA,
A.KM_RETORNO,
A.MM_OBSERVACAO,
A.FL_BLOQUEADA,
A.HM_SAIDA,
A.HM_RETORNO,
B.NM_MOTORISTA,
C.NR_ORDEM,
C.PC_COMISSAO,
C.VL_BASE_COMISSAO,
C.VL_COMISSAO,
D.CD_SITUACAO,
D.VL_TOTAL AS VL_FRETE,
D.CD_LOC_COLETA AS LOCAL_COLETA,
D.CD_LOC_EMISSAO,
D.CD_LOC_ENTREGA AS LOCAL_CHEGADA,
D.QT_PESO_FRETE,
D.CD_NATCARGA,
D.DT_EMISSAO AS DT_EMISSAO,
D.NR_CONHEC AS NR_CONHEC_VIAG,
D.SR_CONHEC AS SR_CONHEC_VIAG
FROM VIAGEM A LEFT JOIN MOTORISTA B ON
A.CD_MOTORISTA = B.CD_MOTORISTA
LEFT OUTER JOIN CONHECTOVM C ON
A.NR_VIAGEM = C.NR_VIAGEM AND
A.NR_VIAGEM_SEQ = C.NR_VIAGEM_SEQ
LEFT OUTER JOIN CONHECTO D ON
C.NR_ORDEM = D.NR_ORDEM
WHERE D.DT_EMISSAO > '31.12.2009' AND D.CD_SITUACAO <> '3';
Ola Ricardo,
Sim, sem o LOAD funciona a carga vou tentar concatenar para verificar.
Att,
André Tonini
Thiago,
Boa tarde, pois é dessa forma havia tentando mas dá erro não encontra o campo DT_EMISSAO
Att,
André Tonini
Ok Andre, faça isso.
Pode ser o entendimento do nome do campo durante a carga. Possivelmente deverias chamar como d.dt_emissao.
Recomendo o concatenar posterior para facilitar inclusive em outras plataformas.
Consegue printar a tela de erro?
Oi Thiago,
segue abaixo imagem...
Teste:
// ------- Viagem --------- //
LOAD *,
YEAR(DT_EMISSAO) AS ANO_FAT,
MONTH(DT_EMISSAO) AS MES_FAT,
DAY(DT_EMISSAO) AS DIA_FAT,
DATE(DT_EMISSAO) AS DATA_FAT;
LOAD
*,
D.DT_EMISSAO AS DT_EMISSAO;
SQL SELECT
A.NR_VIAGEM,
A.NR_VIAGEM_SEQ,
A.CD_VEICULO,
A.CD_MOTORISTA,
A.DT_SAIDA,
A.DT_RETORNO,
A.KM_SAIDA,
A.KM_RETORNO,
A.MM_OBSERVACAO,
A.FL_BLOQUEADA,
A.HM_SAIDA,
A.HM_RETORNO,
B.NM_MOTORISTA,
C.NR_ORDEM,
C.PC_COMISSAO,
C.VL_BASE_COMISSAO,
C.VL_COMISSAO,
D.CD_SITUACAO,
D.VL_TOTAL AS VL_FRETE,
D.CD_LOC_COLETA AS LOCAL_COLETA,
D.CD_LOC_EMISSAO,
D.CD_LOC_ENTREGA AS LOCAL_CHEGADA,
D.QT_PESO_FRETE,
D.CD_NATCARGA,
D.DT_EMISSAO,
D.NR_CONHEC AS NR_CONHEC_VIAG,
D.SR_CONHEC AS SR_CONHEC_VIAG
FROM VIAGEM A LEFT JOIN MOTORISTA B ON
A.CD_MOTORISTA = B.CD_MOTORISTA
LEFT OUTER JOIN CONHECTOVM C ON
A.NR_VIAGEM = C.NR_VIAGEM AND
A.NR_VIAGEM_SEQ = C.NR_VIAGEM_SEQ
LEFT OUTER JOIN CONHECTO D ON
C.NR_ORDEM = D.NR_ORDEM
WHERE D.DT_EMISSAO > '31.12.2009' AND D.CD_SITUACAO <> '3';
Ola Thiago,
Fiz o teste e deu erro tbm...acusando como segue imagem.