martes, 30 de agosto de 2016

SSIS -> OCI-22053: error de desbordamiento.

DESCRIPCIÓN ERROR:

Error: The error "OCI-22053: error de desbordamiento "


CAUSAS:

Campo de tipo Number en la tabla fuente de Oracle, que cuando tiene en algún registro números grandes, al ser consultados los devuelve como números científicos (ejem: 1,20892500014708E30), y SQL los interpreta como decimales y por eso se desborda.


SOLUCIÓN:

Hacer en el query del Source de la tabla Oracle una conversión TO_CHAR(campo) para que tome el numero real y así el campo de destino (de tipo Numeric) no se desborda.

SSIS -> Error code: 0x80004005.

DESCRIPCIÓN ERROR:

SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80004005.

An OLE DB record is available.  Source: "Microsoft OLE DB Provider for Oracle"  Hresult: 0x80004005  Description: "Oracle error occurred, but error message could not be retrieved from Oracle.".

An OLE DB record is available.  Source: "Microsoft OLE DB Provider for Oracle"  Hresult: 0x80004005  Description: "Data type is not supported.".


CAUSAS:

La fuente trae un dato BLOB (equivalente a varchar(max) en Sql) que no es compatible con el componente Source OLEDB del Data Flow del ETL, y al entrar al Source no permite dar OK ya que aparece ese error.


SOLUCIÓN:

Se cambio el componente Source de OLEDB por el .Net Provider, funciona pero hay que agregar un Data Convertion ya que arroja error de tipos de datos si no se agrega antes de conectar con el Destination.

SSIS -> Error code: 0x80004005 - (0xC0202009).

DESCRIPCION ERROR:

[OLE DB Source [1]] Error: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80004005.

[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED.  The PrimeOutput method on component "OLE DB Source" (1) returned error code 0xC0202009.  The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing.  There may be error messages posted before this with more information about the failure.


CAUSAS:

El ETL se revento en un componente OLEDB Source que contiene un script para traer datos desde una base de datos Oracle hacia la Bodega de SQLServer. La razon del error es por que el usuario proporcionado en la conexión creada en el Connection Managers, tiene un limite de uso de IO, y al ejecutar el query la cantidad de datos excede el limite de memoria en la sesion desconectandose el usuario de la base de datos Oracle. Error en Oracle: "ORA-02394: exceeded session limit on IO usage, you are being logged off."


SOLUCION:

Loguearse en la conexión creada en el Connection Managers con un usuario que no tenga limites de memoria por sesion.