I have a simple Data Flow Task that is transferring 1M records from a source to destination. Both the Source table and the Destination table are Oracle tables. The data at the source is composed of two columns Id and Name as shown below -
create table SrcEmployeeData
(
Id int
,Name varchar(50)
);
The values in it are (1,'Test') , (2,'Test') and so on till million. Destination table is a mirror of source table excepting 'Name' column is a not null column. At the source, I have updated Name column of 10 random rows to NULL. To capture these errors, I have created 4 destinations with proper error re-direction.
The first three are of the target table. First one has Rows Per Batch / Maximum insert commit size set to 50,000. Second one has the same values set to 10,000. The third one has the same values set to 1. The final DFT is used to capture the actual error records. All the three DFT's are having data access mode set to 'Table or view - fast load'.
It looks like this -
As the package starts executing, the propation of error record till the last table goes as expected. Excepting when it comes to the last record, the first DFT wiht 50,000 record set as a batch fails. When I look at the destination EmployeeData table, surprisingly I don't find even a single record. What is going wrong here?
These are the two errors I get -
[OLE_DST - Load Data (50,000 rows) [69]] Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0xFFFFFFFF.
[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "OLE_DST - Load Data (50,000 rows)" (69) failed with error code 0xC0202009 while processing input "OLE DB Destination Input" (82). 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.
Here are the random rows having the NULL values -
I am using latest Oracle Provider for OLE DB and downloaded the latest Oracle Data Components for Oracle from here- link.
EDIT - Just to make this little more wierd. The last DFT wherein I am capturing the error rows are having all incorrect data as shown below (am using SQL Server destination table). I have run this test thrice so far and all the time I am having same issue. Any help?