Datareader Source error

  • I’m getting the following error message with a DataReader source:

     

    The column <column name> does not have a matching source column in the DataReader schema.

     

    The DataReader source’s Connection Manager is an Ado.Net connection.  The Ado.Net connection has the Provider set to .NetProviders\ODBC Data Provider.

     

    The tables behind the ODBC are C-ISAM.

     

    Does anyone have any thoughts on how to fix and/or troubleshoot this?

     

    Cheers

     

  • This was removed by the editor as SPAM

  • I have exactly the same issue with a 10 year old C-ISAM database.  I have found a partial answer, which appears to be due to metadata validation.

    It is possible to turn the validation off during development, however means you need to do all the cross checking of data types & sizes manually.

    In the Data Flow tab, show Advanced Editor (i.e. right click on relevant task).  Select Component Properties tab, set ValidateExternalMetadata = False.  This should remove the column mapping error message.  However you may get another error message if the data is not of exactly the same type & size in both the source & destination tables.

  • Thanks Bob

     

    I have set ValidateExternalMetadata = False, and this does remove the Column Mapping error.  However I now get the following error:

     

    Start of error:

    SSIS package "extract_Customer 3.dtsx" starting.

    Information: 0x4004300A at Data Flow Task, DTS.Pipeline: Validation phase is beginning.

    Information: 0x4004300A at Data Flow Task, DTS.Pipeline: Validation phase is beginning.

    Information: 0x40043006 at Data Flow Task, DTS.Pipeline: Prepare for Execute phase is beginning.

    Information: 0x40043007 at Data Flow Task, DTS.Pipeline: Pre-Execute phase is beginning.

    Error: 0xC0202005 at Data Flow Task, DataReader Source [2470]: Column "dr_order_priority" cannot be found at the datasource.

    Error: 0xC004701A at Data Flow Task, DTS.Pipeline: component "DataReader Source" (2470) failed the pre-execute phase and returned error code 0xC0202005.

    Information: 0x40043009 at Data Flow Task, DTS.Pipeline: Cleanup phase is beginning.

    Information: 0x4004300B at Data Flow Task, DTS.Pipeline: "component "OLE DB Destination" (3850)" wrote 0 rows.

    Task failed: Data Flow Task

    Warning: 0x80019002 at extract_Customer 3: The Execution method succeeded, but the number of errors raised (2) 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.

    SSIS package "extract_Customer 3.dtsx" finished: Failure.

    End of error

      

    I’m assuming the problem is has something to do with the External Column Data Type specified.  What Data Types did you define in your DataReader Source for the C-ISAM tables?  And what were the Data Types as per the C-ISAM table specifications?

     

    Whilst troubleshooting this problem I’m extracting data from only one field, “dr_order_priority". This field is defined in the ISAM table specifications as:

     

    Type: Numeric

    Storage Size: 2

    Total Size: 1

     

    In SSIS DataReader source I’ve defined the External Column Data Type as Two-byte signed integer [D2_I2].

     

    Cheers

Viewing 4 posts - 1 through 3 (of 3 total)

You must be logged in to reply to this topic. Login to reply