How to update destination table in ssis?

0

I have a scenario where emp table has id,name,description.
i need to copy only id and name columns to emptem.
when a newrecord is added in emp the same should be inserted into emptem without any duplicates.
i have done this using lookup by specifying emptem table in lookup and matched the destination to emptem with no matched columns.

Now i have a new scenario where if any of record in emp is updated i need the updated value in emptem.
i am continuing the same scenario as above and matching lookup table to oledb command. i have given the update stmt

update emptem set empno = ? where empname=? 

i am getting the error as follows

Error: 0xC0202009 at Data Flow Task 5, OLE DB Command [177]: 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 10.0" Hresult: 0x80040E21 Description: "Invalid character value for cast specification".

Error: 0xC020901C at Data Flow Task 5, OLE DB Command [177]: There was an error with input column "ename" (193) on input "OLE DB Command Input" (182). The column status returned was: "The value could not be converted because of a potential loss of data.".

Error: 0xC0209029 at Data Flow Task 5, OLE DB Command [177]: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "input "OLE DB Command Input" (182)" failed because error code 0xC0209069 occurred, and the error row disposition on "input "OLE DB Command Input" (182)" 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.

Error: 0xC0047022 at Data Flow Task 5, SSIS.Pipeline: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "OLE DB Command" (177) failed with error code 0xC0209029 while processing input "OLE DB Command Input" (182). 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.

Any suggestions?

ssis
asked on Stack Overflow Apr 3, 2012 by user1260815 • edited Apr 3, 2012 by Sam DeHaan

2 Answers

1

The error you are getting is not directly related to the update itself, but with data types. The value you are trying to insert in the column ename is not of the same type or size as the destination table.

Find out what is different and do your conversion before the destination component, and everything should work

answered on Stack Overflow Apr 3, 2012 by cfrag
1

Probably you are interchanging the order of the mapping of the destination column with the "?" parameters (in OLEDB Command transformation)

update emptem set empno = ? where empname=?

In Column Mappings Tab (of OLEDB Command Transformation) make sure Param_0 maps to empno and Param_1 maps to empName

answered on Stack Overflow Apr 4, 2012 by ajay swamy

User contributions licensed under CC BY-SA 3.0