3
respostas

Erro na Carga Tabela Fato 001

Prezados, boa noite.

Na tentativa de carregar a tabela falto, recebi o seguinte erro abaixo.

Por gentileza, poderiam me auxiliar?

Inicialização do pacote SSIS "D:\Projetos\SQL Server - Datawarehouse Sucos\DatawarehouseSucos\CargaDatawarehouseSucos\CargaFatos.dtsx". Informações: 0x4004300A em Carga Fato 001, SSIS.Pipeline: Validation phase is beginning. Informações: 0x4004300A em Carga Fato 001, SSIS.Pipeline: Validation phase is beginning. Aviso: 0x80049304 em Carga Fato 001, SSIS.Pipeline: Warning: Could not open global shared memory to communicate with performance DLL; data flow performance counters are not available. To resolve, run this package as an administrator, or on the system's console. Aviso: 0x80047076 em Carga Fato 001, SSIS.Pipeline: The output column "DATA_FATO" (14) on output "Saída de Origem OLE DB" (13) and component "Carga Fato 001" (2) is not subsequently used in the Data Flow task. Removing this unused output column can increase Data Flow task performance. Informações: 0x40043006 em Carga Fato 001, SSIS.Pipeline: Prepare for Execute phase is beginning. Informações: 0x40043007 em Carga Fato 001, SSIS.Pipeline: Pre-Execute phase is beginning. Informações: 0x4004300C em Carga Fato 001, SSIS.Pipeline: Execute phase is beginning. Erro: 0xC0202009 em Carga Fato 001, Inserir Destino [178]: 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: "A instrução foi finalizada.". An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80040E2F Description: "A instrução INSERT conflitou com a restrição do FOREIGN KEY "FK_Fato_001_Dim_Tempo". O conflito ocorreu no banco de dados "DW_SUCOS", tabela "dbo.Dim_Tempo", column 'Cod_Dia'.". Erro: 0xC0209029 em Carga Fato 001, Inserir Destino [178]: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "Inserir Destino.Entradas[Entrada de Destino OLE DB]" failed because error code 0xC020907B occurred, and the error row disposition on "Inserir Destino.Entradas[Entrada de Destino OLE DB]" specifies failure on error. An error occurred on the specified object of the specified component. There may be error messages posted before this with more information about the failure. Erro: 0xC0047022 em Carga Fato 001, SSIS.Pipeline: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "Inserir Destino" (178) failed with error code 0xC0209029 while processing input "Entrada de Destino OLE DB" (191). The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running. There may be error messages posted before this with more information about the failure. Informações: 0x40043008 em Carga Fato 001, SSIS.Pipeline: Post Execute phase is beginning. Informações: 0x4004300B em Carga Fato 001, SSIS.Pipeline: "Inserir Destino" wrote 0 rows. Informações: 0x40043009 em Carga Fato 001, SSIS.Pipeline: Cleanup phase is beginning. Falha na tarefa: Carga Fato 001 Aviso: 0x80019002 em Package1: SSIS Warning Code DTS_W_MAXIMUMERRORCOUNTREACHED. The Execution method succeeded, but the number of errors raised (3) reached the maximum allowed (1); resulting in failure. This occurs when the number of errors reaches the number specified in MaximumErrorCount. Change the MaximumErrorCount or fix the errors. Pacote SSIS "D:\Projetos\SQL Server - Datawarehouse Sucos\DatawarehouseSucos\CargaDatawarehouseSucos\CargaFatos.dtsx" concluído: Falha. O programa "[8584] DtsDebugHost.exe: DTS" foi fechado com o código 0 (0x0).

3 respostas

Oiiii Alan, como vai?

O erro consiste no conflito de FK entre o Cod_Dia da Dim_Tempo e Cod_Dia da Fato 001. O período selecionado na Dim_Tempo não corresponde com a seleção de período na consulta :

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

Então eu sugiro que altere o ano dentro dos parâmetros da Carga Fato para o ano que foi carregado ou nos parâmetros da Dimensão Tempo carregue de 2013 a 2015.

Qualquer coisa me fala, tá bom? :)

Oi Maria, tudo ótimo.

Realizei as alterações e o erro ainda persiste :( .

Inicialização do pacote SSIS "D:\Projetos\SQL Server - Datawarehouse Sucos\DatawarehouseSucos\CargaDatawarehouseSucos\CargaFatos.dtsx". Informações: 0x4004300A em Carga Fato 001, SSIS.Pipeline: Validation phase is beginning. Informações: 0x4004300A em Carga Fato 001, SSIS.Pipeline: Validation phase is beginning. Aviso: 0x80049304 em Carga Fato 001, SSIS.Pipeline: Warning: Could not open global shared memory to communicate with performance DLL; data flow performance counters are not available. To resolve, run this package as an administrator, or on the system's console. Aviso: 0x80047076 em Carga Fato 001, SSIS.Pipeline: The output column "DATA_FATO" (14) on output "Saída de Origem OLE DB" (13) and component "Carga Fato 001" (2) is not subsequently used in the Data Flow task. Removing this unused output column can increase Data Flow task performance. Informações: 0x40043006 em Carga Fato 001, SSIS.Pipeline: Prepare for Execute phase is beginning. Informações: 0x40043007 em Carga Fato 001, SSIS.Pipeline: Pre-Execute phase is beginning. Informações: 0x4004300C em Carga Fato 001, SSIS.Pipeline: Execute phase is beginning. Erro: 0xC0202009 em Carga Fato 001, Inserir Destino [178]: 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: "A instrução foi finalizada.". An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80040E2F Description: "A instrução INSERT conflitou com a restrição do FOREIGN KEY "FK_Fato_001_Dim_Tempo". O conflito ocorreu no banco de dados "DW_SUCOS", tabela "dbo.Dim_Tempo", column 'Cod_Dia'.". Erro: 0xC0209029 em Carga Fato 001, Inserir Destino [178]: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "Inserir Destino.Entradas[Entrada de Destino OLE DB]" failed because error code 0xC020907B occurred, and the error row disposition on "Inserir Destino.Entradas[Entrada de Destino OLE DB]" specifies failure on error. An error occurred on the specified object of the specified component. There may be error messages posted before this with more information about the failure. Erro: 0xC0047022 em Carga Fato 001, SSIS.Pipeline: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "Inserir Destino" (178) failed with error code 0xC0209029 while processing input "Entrada de Destino OLE DB" (191). The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running. There may be error messages posted before this with more information about the failure. Informações: 0x40043008 em Carga Fato 001, SSIS.Pipeline: Post Execute phase is beginning. Informações: 0x4004300B em Carga Fato 001, SSIS.Pipeline: "Inserir Destino" wrote 0 rows. Informações: 0x40043009 em Carga Fato 001, SSIS.Pipeline: Cleanup phase is beginning. Falha na tarefa: Carga Fato 001 Aviso: 0x80019002 em Package1: SSIS Warning Code DTS_W_MAXIMUMERRORCOUNTREACHED. The Execution method succeeded, but the number of errors raised (3) reached the maximum allowed (1); resulting in failure. This occurs when the number of errors reaches the number specified in MaximumErrorCount. Change the MaximumErrorCount or fix the errors. Pacote SSIS "D:\Projetos\SQL Server - Datawarehouse Sucos\DatawarehouseSucos\CargaDatawarehouseSucos\CargaFatos.dtsx" concluído: Falha. O programa "[10392] DtsDebugHost.exe: DTS" foi fechado com o código 0 (0x0).

Oi Alan,

Eu não sei se consegui te explicar bem e o erro persiste né? Me desculpa por isso. Vamos tentar dessa forma:

Na carga da Dimensão Tempo clique na guia dos parâmetros e altere para o seguinte e faça a carga:

Ano_Final: 2015 Ano_Inicial: 2013 Mes_Final: 12 Mes_Inicial: 1

Imagino que durante as aulas, tenha feito conforme o professor fez e carregou apenas o ano de 2013. Aí quando você coloca na Fato 001, ele retorna o erro de que aquele período não existe: "A instrução INSERT conflitou com a restrição do FOREIGN KEY "FK_Fato_001_Dim_Tempo". O conflito ocorreu no banco de dados "DW_SUCOS", tabela "dbo.Dim_Tempo", column 'Cod_Dia'.".

Imgur

Certo, depois de feito a carga verifique a sua tabela dimensão de tempo se os dados estão lá e depois faça a carga da Fato 001.

Antes verifique se os parâmetros estão com os dados corretos. Imgur

Qualquer coisa me fala, tá bom? :)