Error: Cannot retrieve the column code page info from the OLE DB provider.


Error: [OLE DB Source [1]] Warning: Cannot retrieve the column code page info from the OLE DB provider. If the component supports the “DefaultCodePage” property, the code page from that property will be used.  Change the value of the property if the current string code page values are incorrect.  If the component does not support the property, the code page from the component’s locale ID will be used.

Description: This is actually a warning not an error by OLE DB. This warning occurs in SSIS project while we do a data transfer from source (Oracle) to destination SQL Server via OLE DB. This is because for the Oracle database the default code page is missing due to this it leads to bad data conversions. SSIS supports the option of specifying a per-column Locale Identifier for string data types, such as CHARACTER. However, the OLE DB Provider for Oracle does not support this option.

Solution: We can overcome this OLE DB warning by changing the property of OLE DB Source Data Flow Component. That property is AlwaysUseDefaultCodePage, by default the value is False, change it to True. Rebuild the project.

5 thoughts on “Error: Cannot retrieve the column code page info from the OLE DB provider.

  1. This did solve my problem with one Oracle OLEDbConnection, but it continues to occur in others, even though I have globally set AlwaysUseDefaultCodePage to true. I am going from Oracle to SQL Server 2008, and I am using a data conversion task to put the unicode data from oracle into varchar(n) columns in SQL Server. It runs fine on some boxes (Windows 7 64 bit) and oddly, on SSIS 2005 32 bit, but not on SSIS2008 64 bit. And yes, I have the 64 bit runtime enabled.
    Partial output:

    Error: 2014-01-02 16:57:45.99
    Code: 0xC02020F6
    Source: Get Account Reductions GET_AR3 [1]
    Description: Column “USUS_ID” cannot convert between unicode and non-unicode string data types.
    End Error
    Warning: 2014-01-02 16:57:45.99
    Code: 0x800470C8
    Source: Get Account Reductions GET_AR3 [1]
    Description: The external columns for component “GET_AR3” (1) are out of synchronization with the data source columns. The external column “ACPR_REF_ID” needs to be updated.
    The external column “ACPR_SUB_TYPE” needs to be updated.
    The external column “ACPR_TX_YR” needs to be updated.
    The external column “ACPR_TYPE” needs to be updated.
    The external column “LOBD_ID” needs to be updated.
    The external column “ACPR_PAYEE_PR_ID” needs to be updated.
    The external column “ACPR_PAYEE_TYPE” needs to be updated.
    The external column “ACPR_AUTO_REDUC” needs to be updated.
    The external column “ACPR_STS” needs to be updated.
    The external column “EXCD_ID” needs to be updated.
    The external column “USUS_ID” needs to be updated.
    End Warning
    Error: 2014-01-02 16:57:46.06
    Code: 0xC004706B
    Source: Get Account Reductions SSIS.Pipeline
    Description: “component “GET_AR3″ (1)” failed validation and returned validation status “VS_ISBROKEN”.
    End Error
    Progress: 2014-01-02 16:57:46.06

    Like

      • No, the conversion happened fine when the package ran on our SSIS 2005 server. I finally figured out the issue. Setting AlwaysUseDefaultCodePage to true doesn’t help because the Oracle provider doesn’t send code page information. So I had to set DelayValidation to True at the package level, but not at the task level, to allow the task to run far enough to GET to the data conversion. It was a combination of both settings.

        Like

  2. Pingback: How To Fix Error 57 The Operation Cannot Complete Because The Identifier Errors - Windows Vista, Windows 7 & 8

Leave a comment