SSIS OLE Destination several error output - ssis

I have a problem...
I have an OLE DB error that occurred in INSERT statement than conflicted with the FOREIGN KEY constraint.
SSIS package eturn this 3 errors:
[OLE_DEST PollOptionUserResult [43]] Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Description: "The statement has been terminated.".
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Description: "The INSERT statement conflicted with the FOREIGN KEY constraint "FK_PollOptionUserResult_PollUserResult". The conflict occurred in database "dw_ismsES", table "ten.PollUserResult", column 'PollUserResultID'.".
[OLE_DEST PollOptionUserResult [43]] Error: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "OLE_DEST PollOptionUserResult.Inputs[OLE DB Destination Input]" failed because error code 0xC020907B occurred, and the error row disposition on "OLE_DEST PollOptionUserResult.Inputs[OLE DB Destination Input]" 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.
[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "OLE_DEST PollOptionUserResult" (43) failed with error code 0xC0209029 while processing input "OLE DB Destination Input" (56). 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.
When I try redirect error to my error_table, it internally for some reason take the last one and no the first one I need.
How I can obligate it to take the first one error?

In my case (SSIS 2008), I created an OnError event in the package level, so every error happening in the package would be logged, regardless of where they happened. When I take this approach, all 3 errors should be logged in my error table. I.e.
Please try this approach and see what you get.

Related

Violation of PRIMARY KEY constraint error on import of Data

I have a table in SQL Server called Services. It has a primary key on the Service_ID field.
I deleted some data and am trying to reimport data from a CSV file.
I am getting the errors below. It mentions a violation of Primary Key.
However if I query the table searching for a record with that Service_ID value then it does not find it - results are empty. So why am I getting this error?
Copying to [dbo].[Services] (Error)
Messages
Error 0xc0202009: Data Flow Task 1: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Description: "The statement has been terminated.".
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Description: "Violation of PRIMARY KEY constraint 'PK_Services'. Cannot insert duplicate key in object 'dbo.Services'. The duplicate key value is (538629).".
(SQL Server Import and Export Wizard)
Error 0xc0209029: Data Flow Task 1: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "Destination - Services.Inputs[Destination Input]" failed because error code 0xC020907B occurred, and the error row disposition on "Destination - Services.Inputs[Destination Input]" 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.
(SQL Server Import and Export Wizard)
Error 0xc0047022: Data Flow Task 1: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "Destination - Services" (90) failed with error code 0xC0209029 while processing input "Destination Input" (103). 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.
(SQL Server Import and Export Wizard)
Error 0xc02020c4: Data Flow Task 1: The attempt to add a row to the Data Flow task buffer failed with error code 0xC0047020.
(SQL Server Import and Export Wizard)
Error 0xc0047038: Data Flow Task 1: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput method on Source - Services_csv returned error code 0xC02020C4. The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing. There may be error messages posted before this with more information about the failure.
(SQL Server Import and Export Wizard)
Duplicate key was in my import data not the table.

job ssis in ssms versus local solution

I have a job ssis that truncate a table and insert into this table.
When i launch the package in visual studio, all works well but when I put the job on sql server and launch it with ssms, it doesn't works. there is a primary key conflict when inserting..so i'm asking why its working in visual studio and not on sql management studio..
I log one table after the truncate and the count return 0 rows..so the truncable command works well.
I use the same user to launch the package in visual studio or ssms.
I use ole db datasource and destination.
here is the complete error message :
Executed as user: DOMAIN\USER. Microsoft (R) SQL Server Execute Package Utility Version 13.0.5149.0 for 64-bit Copyright (C) 2016 Microsoft. All rights reserved. Started: 14:46:04 Error: 2018-10-11 14:46:08.01 Code: 0xC0202009 Source: Data Flow Component OLE DB Destination [104] Description: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Description: "The statement has been terminated.". An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Description: "Violation of PRIMARY KEY constraint 'PK_STA_TABLE'. Cannot insert duplicate key in object 'dbo.STA_TABLE'. The duplicate key value is (19).". End Error Error: 2018-10-11 14:46:08.01 Code: 0xC0209029 Source: Data Flow Component OLE DB Destination [104] Description: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "OLE DB Destination.Inputs[OLE DB Destination Input]" failed because error code 0xC020907B occurred, and the error row disposition on "OLE DB Destination.Inputs[OLE DB Destination Input]" 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. End Error Error: 2018-10-11 14:46:08.01 Code: 0xC0047022 Source: Data Flow Component SSIS.Pipeline Description: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "OLE DB Destination" (104) failed with error code 0xC0209029 while processing input "OLE DB Destination Input" (117). 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. End Error Error: 2018-10-11 14:46:09.50 Code: 0xC02020C4 Source: Data Flow Component Data Source T_TABLE [2] Description: The attempt to add a row to the Data Flow task buffer failed with error code 0xC0047020. End Error Error: 2018-10-11 14:46:09.50 Code: 0xC0047038 Source: Data Flow Component SSIS.Pipeline Description: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput method on Data Source T_TABLE returned error code 0xC02020C4. The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing. There may be error messages posted before this with more information about the failure. End Error DTExec: The package execution returned DTSER_FAILURE (1). Started: 14:46:04 Finished: 14:46:10 Elapsed: 5.781 seconds. The package execution failed. The step failed.
Thank you.

Mysql ADO.Net inserts causing error when creating new tables or inserting records

When I try to create a simple data flow between flat file/OLE DB to ADO.Net Destination I get an error and it fails my package, almost right away.
[ADO NET Destination [2]] Error: An exception has occurred during data insertion, the message returned from the provider is: ERROR [42000] [MySQL][ODBC 5.2(a) Driver][mysqld-5.6.27-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"test_etl2" ("id", "phone", "var1", "var2", "var3", "var4", "var5", "name1", "na' at line 1
[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "ADO NET Destination" (2) failed with error code 0xC020844B while processing input "ADO NET Destination Input" (9). 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.
[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput method on Flat File Source returned error code 0xC02020C4. The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing. There may be error messages posted before this with more information about the failure.
Screenshot

ROLLLBACK and COMMIT transaction issue in SSIS package

I am trying to do a ROLLBACK and COMMIT transaction in SSIS package.The commit transaction is working fine.For the rollback transaction i inserted null value to a column which's data type is money.Here iam getting an error in DFT and Commit SQLtask.Please give me a solution,
I changed the CONTROLLFLOW properties--->TransactionRequired to Required
In DFT TransactionRequired---->Supported
Please help me friends
Thanks in advance
The errors are shown below
[Execute SQL Task] Error: Executing the query "Rollback tran" failed with the following error: "Distributed transaction completed. Either enlist this session in a new transaction or the NULL transaction.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
[OLE DB Destination [2]] Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E21.
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80040E21 Description: "Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.".
[OLE DB Destination [2]] Error: There was an error with OLE DB Destination.Inputs[OLE DB Destination Input].Columns[CustomerAmount] on OLE DB Destination.Inputs[OLE DB Destination Input]. The column status returned was: "The value violated the integrity constraints for the column.".
[OLE DB Destination [2]] Error: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "OLE DB Destination.Inputs[OLE DB Destination Input]" failed because error code 0xC020907D occurred, and the error row disposition on "OLE DB Destination.Inputs[OLE DB Destination Input]" 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.
[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "OLE DB Destination" (2) failed with error code 0xC0209029 while processing input "OLE DB Destination Input" (15). 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.
You are missing two approaches with SSIS and transaction handling. If you are using SSIS native transactions (setting TransactionRequired=Required), you do not need to call Rollback. Transaction will be rolled back automatically if an error will occur or you deliberately set an error. Important thing to notion - transaction scope, i.e. when it will commit. My recommendation - declare transaction on dedicated Sequence Container; transaction will be committed when leaving this Sequence Container.
If you want to use transaction handling with SQL Commit and Rollback, you do not use TransactionRequired=Required. It is a special case for MS SQL, for details see The implementation of Transaction with out msdtc in the design pattern and TransactionOption in SSIS.

How to handle the error while bulk insert empty string into not null column using SSIS

How to manage to insert empty string into not null column using SSIS bulk insert.
My Scenario is,
I have a data in text file which is tab delimited. some of the not null field values contains empty string. while i try to insert using SSIS, I got below error.
[OLE DB Destination [730]] Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005.An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80004005 Description: "Unspecified error".
[OLE DB Destination [730]] Error: There was an error with input column "Copy of UOM_CD" (3675) on input "OLE DB Destination Input" (743). The column status returned was: "The value violated the integrity constraints for the column.".
[OLE DB Destination [730]] Error: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "input "OLE DB Destination Input" (743)" failed because error code 0xC020907D occurred, and the error row disposition on "input "OLE DB Destination Input" (743)" 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.
[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "OLE DB Destination" (730) failed with error code 0xC0209029 while processing input "OLE DB Destination Input" (743). 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.
How to solve this issue, Please give some help on this.