Invalid character value for cast specification

  • Hi,

    In my SSIS Package I am loading data from Oracle source to SQL Destination.

    But while loading I am getting below error.

    [OLE_DST_FORECASTSTANDARD [72]] 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: "Invalid character value for cast specification".

    [OLE_DST_FORECASTSTANDARD [72]] Error: There was an error with OLE_DST_FORECASTSTANDARD.Inputs[OLE DB Destination Input].Columns[UNITS_NEW] on OLE_DST_FORECASTSTANDARD.Inputs[OLE DB Destination Input]. The column status returned was: "Conversion failed because the data value overflowed the specified type.".

    I have attached the table definition of both source as well as destination.

    Kindly help me to resolve the issue.

    Thanks in Advance 🙂

  • Number(38) is much larger than integer and I don't think they play nice together with implicit conversions. The error looks like it's happening on your destination component so I'm guessing that you have not done an explicit data conversion on these values. You're going to need to get those Number(38)'s into an integer somehow. This will likely be a Data Conversion transformation depending on the SSIS data type that the column has. A derived column could be used as well if you need to use an expression on the data to trim it down. Number(38) may be the source data type, but what data type do these values show up as in the SSIS pipeline for your data flow?

    John Rowan

    ======================================================
    ======================================================
    Forum Etiquette: How to post data/code on a forum to get the best help[/url] - by Jeff Moden

  • John Rowan (10/5/2015)


    Number(38) is much larger than integer and I don't think they play nice together with implicit conversions. The error looks like it's happening on your destination component so I'm guessing that you have not done an explicit data conversion on these values. You're going to need to get those Number(38)'s into an integer somehow. This will likely be a Data Conversion transformation depending on the SSIS data type that the column has. A derived column could be used as well if you need to use an expression on the data to trim it down. Number(38) may be the source data type, but what data type do these values show up as in the SSIS pipeline for your data flow?

    Quick thought, Oracle's NUMBER(38) only mapps to SQL Server's NUMERIC(38), no other mapping will work.

    😎

  • Yeah, the equivalent data type will be a numeric on SQL Server, but his destination is an integer. I've seen systems that used large numeric data types, but only stored whole numbers in them so converting to integer was a possibility. If not, the destination types should be changed or you'll have to face losing precision with the numbers.

    John Rowan

    ======================================================
    ======================================================
    Forum Etiquette: How to post data/code on a forum to get the best help[/url] - by Jeff Moden

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

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