1
resposta

Erro ao Carregar a Tabela Fato_001

Não estou com um problema, mas fiquei um tempinho batendo cabeça aqui e vi que uma galera também, então vou compartilhar aqui a "solução" ...

A parada que gerou um problema na hora de carregar a tabela Fato_001 é que a query que está dentro do arquivo Consulta Fatos Fonte de Dados.txt tá com ano de 2014, e quando foi feita a carga da tabela DIM_TEMPO carregamos só do ano de 2013:

SELECT * FROM TAB_FATO001 WHERE YEAR(DATA_FATO) >= '2014' AND MONTH(DATA_FATO) >= '1' AND YEAR(DATA_FATO) <= '2014' AND MONTH(DATA_FATO) <= '1'

Quando colocamos essa query dentro de SQL command no Source Assistant dá pau:

[Insert Destination [2]] Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E2F. An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80040E2F Description: "The statement has been terminated.". An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80040E2F Description: "The INSERT statement conflicted with the FOREIGN KEY constraint "FK_Fato_001_DIM_TEMPO". The conflict occurred in database "DW_SUCOS", table "dbo.DIM_TEMPO", column 'Cod_Dia'.".

A coluna Cod_Dia é uma PK da Fato_001, FK da DIM_TEMPO. O que acontece aqui é que como não tem nenhuma instância para Cod_Dia pro ano de 2014 na tabela DIM_TEMPO, dá pau. E como diria minha mãe, se muda a cor da grama a vaca morre de fome ... =P

Pra resolver é só voltar na DIM_TEMPO e mudar os parâmetros de Ano_Inicial e Ano_Final para 2014 e os parâmetros de Mes_Inicial e Mes_Final para 1 e 12, respectivamente, e fazer a carga de 2014 na DIM_TEMPO. Ou só mudar o ano para 2013 no SELECT de Source Assistant.

Enfim, só compartilhando mesmo ... Na verdade acho que isso nem é um problema de verdade, é só a Alura trabalhando para não formar desenvolvedores Full StackOverflow ... xD

https://twitter.com/sehnaoui/status/1142103495061004290

1 resposta

Oi Jaime! Como vai?

Esse é um exercício que costuma gerar muitas dúvidas mesmo. Obrigada por compartihar sua solução com a gente!

Abraço e Bons Estudos!