• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1108
  • Last Modified:

SSIS 2005 - How to identify the colum causing the error in OLEDb Destination component

Can anyone tell me how to identify the specific column name that is causing an error when attempting to insert a data flow into an OLEDB Destination component?  I am attempting to create a lot which specifies the error that occurred and the field name that caused the error.  I am able to get the column ID, but I don't know how to translate this into a meaningful column name.  Example:  I get an "error field" value of 6581.  I don't know which field is represented by 6581, so I don't know what column is causing the problem.  I checked the sys.columns and sys.all_columns views to see if the column_id referenced by SSIS was perhaps one of those values, but I could not find anything useful there.

Below is a sample of code that is our best attempt at the moment to figure this out, but it seems really ugly.  I'm using a script task and hard-coding to convert the error column id into an error column name.

I'm sure there is a better way to do this with no hard-coding.

P


Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
        '
        ' Add your code here
        '

        Row.ErrorDescription = ComponentMetaData.GetErrorDescription(Row.ErrorCode)
        If Row.ErrorColumn = 6581 Then
            Row.ErrorColumnName = "SUBMISSION_ID"
        Else
            Row.ErrorColumnName = Row.ErrorColumn.ToString()

        End If
    End Sub

End Class

Open in new window

0
jbaird123
Asked:
jbaird123
  • 4
  • 2
2 Solutions
 
jbaird123Author Commented:
dbaSQL:  Thanks for the information, but this does not quite answer my question.  The first article explains how to get the error description - which I am already doing.  The second article appears to be showing how to extract the data from all fields in the data flow, but it does not show how to identify which column caused the error.

There is an ErrorColumn field which identifies the column that caused the error, but the value in this field is something cryptic like "6851".  I don't know how to figure out which field in the data flow is represented by "6851".  

Can you explain how to figure this out?  It seems like there should be an easy solution for something like this.  

Thanks.
0
 
dbaSQLCommented:
0
Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

 
dbaSQLCommented:
Also looks like these guys did the same thing you're trying to do:
http://www.sqlservercentral.com/Forums/Topic456102-148-1.aspx
0
 
jbaird123Author Commented:
Thank you. The code at http://eod.codeplex.com/ is very helpful for implementing these solutions.
0
 
dbaSQLCommented:
Excellent.  Glad you got it worked out.
0

Featured Post

[Webinar] Kill tickets & tabs using PowerShell

Are you tired of cycling through the same browser tabs everyday to close the same repetitive tickets? In this webinar JumpCloud will show how you can leverage RESTful APIs to build your own PowerShell modules to kill tickets & tabs using the PowerShell command Invoke-RestMethod.

  • 4
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now