Search code examples
sql-serveroracle-databaseoracle11gssisssis-2012

Warning: Truncation may occur due to retrieving data from database column


I am importing a data set from Oracle using SSIS. SSIS is gives me a warning:

Truncation may occur due to retrieving data from database column "Third Party" with a length of 28 to data flow column "Third Party" with a length of 25."

The warning does not make sense. The destination is a SQL Server database where the attribute is [Third Party] as nvarchar(255).

Why is the tool giving me this odd error?

I have tried changing the length of the nvarchar(max). This did not make a difference.

select 
    case 
        when XTNL_HOS_FLG = 1 and VND_MG_APL_FLG = 0 
           then 'Host'          
        when XTNL_HOS_FLG = 0 and VND_MG_APL_FLG = 1 
           then 'Support or Manage' 
        when XTNL_HOS_FLG = 1 and VND_MG_APL_FLG = 1 
           then 'Host and (Support or Manage)'  
        else ''
    end  as "Third Party"
from 
    table1

Solution

  • Since you are using an SQL Command as source you can edit you command and force the source column length and to help the OLEDB source to recognize it. You can use a CAST function to do that:

    select CAST(
        case 
            when XTNL_HOS_FLG = 1 and VND_MG_APL_FLG = 0 
               then 'Host'          
            when XTNL_HOS_FLG = 0 and VND_MG_APL_FLG = 1 
               then 'Support or Manage' 
            when XTNL_HOS_FLG = 1 and VND_MG_APL_FLG = 1 
               then 'Host and (Support or Manage)'  
            else ''
        end AS NCHAR(255)) as "Third Party"
    from 
        table1