REVISIÓN: Mensaje de Error cuando ejecuta una instrucción SQL mediante el proveedor OLE DB para DB2: "SQLSTATE 22007, SQLCODE 181"

Síntomas

Considere el siguiente escenario. Ejecutar una instrucción SQL utilizando el proveedor Microsoft OLE DB para DB2. La instrucción SQL pasa un parámetro de fecha y hora de Microsoft SQL Server a una columna de base de datos de IBM DB2. La columna de base de datos de IBM DB2 utiliza el tipo de datos de IBM DB2 fecha . En este escenario, puede recibir el siguiente mensaje de error:
SQLSTATE: 22007, SQLCODE:-181
Por ejemplo, la siguiente instrucción SQL pasa un parámetro de datetime de SQL Server a una columna de base de datos de IBM DB2.
declare @var1 datetimeset @var1 = '2006-09-27 00:00:00.000'
SELECT COL1, COL2, COL3
FROM IBMDB2.TESTDATA.USER1.TABLE1
WHERE COL2 = @var1

En este ejemplo, este problema se produce si la columna COL2 que utiliza el tipo de datos de IBM DB2 fecha .

Causa

En tiempo de ejecución, el proveedor OLE DB para DB2 no sabe el tipo de datos de IBM DB2 correcto para la columna de base de datos IBM DB2, a la que se pasa el parámetro datetime de SQL Server. Por lo tanto, el proveedor OLE DB para DB2 incluye la información de fecha y hora en el valor que el proveedor OLE DB para DB2 pasa a la base de datos de IBM DB2. La información de hora no es válida para el tipo de datos de IBM DB2 fecha . Por lo tanto, recibirá el mensaje de error que se menciona en la sección "Síntomas".

Solución

Microsoft Host Integration Server 2006

Para resolver este problema, obtenga el service pack más reciente para Host Integration Server 2006. Para obtener más información, haga clic en el siguiente número de artículo para verlo en Microsoft Knowledge Base:
979497 cómo obtener el service pack más reciente para Host Integration Server 2006

Microsoft Host Integration Server 2004

Existe un hotfix disponible desde Microsoft. Sin embargo, esta revisión se diseñó para corregir únicamente el problema que se describe en este artículo. Aplíquela sólo a sistemas que experimenten este problema específico. Esta revisión podría ser sometida a comprobaciones adicionales. Por lo tanto, si no se ve muy afectado por este problema, recomendamos que espere a la próxima actualización de software que contenga este hotfix.

Si la revisión está disponible para su descarga, hay una sección de "Descarga de revisión disponible" en la parte superior de este artículo de Knowledge Base. Si esta sección no aparece, póngase en contacto con el servicio al cliente de Microsoft y soporte técnico para obtener la revisión.

Nota: Si se producen problemas adicionales o si se requiere cualquier otra solución, será necesario crear una solicitud de revisión independiente. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no califican para esta revisión específica. Para obtener una lista completa de los números de teléfono de servicio al cliente de Microsoft o para crear una solicitud de servicio independiente, visite el siguiente sitio Web de Microsoft:Nota: El formulario de "Descarga de Hotfix disponible" muestra los idiomas para los que el Hotfix está disponible. Si no ve su idioma, es porque no hay una revisión para ese idioma.

Información de archivo

La versión en inglés de esta revisión tiene los atributos de archivo (o atributos del archivo más reciente) mostrados en la tabla siguiente. Las fechas y horas de estos archivos se muestran en la hora Universal coordinada (UTC). Al ver la información del archivo, se convierte en hora local. Para encontrar la diferencia entre la hora UTC y la hora local, utilice la ficha zona horaria en el elemento de fecha y hora del Panel de Control.
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataformaRequisito de SP
Db2oledb.dll6.0.2048.0488,96003-Nov-200617:31x86SP1
Db2oledb.hNo aplicable24,57903-Nov-200617:36No aplicableSP1
Ddmstr.dll6.0.2048.044,03203-Nov-200617:31x86SP1
Drdaresync.exe6.0.2048.0337.40803-Nov-200617:32x86SP1
Microsoft.hostintegration.dataaccesslibrary.dll6.0.2048.086.01603-Nov-200617:31x86SP1
Microsoft.hostintegration.dataaccesstool.exe6.0.2048.02,703,36003-Nov-200617:32x86SP1
Microsoft.hostintegration.msdb2client.dll6.0.2048.0114,68803-Nov-200617:31x86SP1
Mseidb2c.dll6.0.2048.071,68003-Nov-200617:31x86SP1
Mseidb2d.dll6.0.2048.0435,20003-Nov-200617:31x86SP1
Mseidrda.dll6.0.2048.0695,80803-Nov-200617:32x86SP1
Nota: Debido a la interdependencia entre archivos, la revisión más reciente que contiene estos archivos puede contener también archivos adicionales.

Proveedor Microsoft OLE DB para DB2 versión 1.0

Existe un hotfix disponible desde Microsoft. Sin embargo, esta revisión se diseñó para corregir únicamente el problema que se describe en este artículo. Aplíquela sólo a sistemas que experimenten este problema específico. Esta revisión podría ser sometida a comprobaciones adicionales. Por lo tanto, si no se ve muy afectado por este problema, recomendamos que espere a la próxima actualización de software que contenga este hotfix.

Si la revisión está disponible para su descarga, hay una sección de "Descarga de revisión disponible" en la parte superior de este artículo de Knowledge Base. Si esta sección no aparece, póngase en contacto con el servicio al cliente de Microsoft y soporte técnico para obtener la revisión.

Nota: Si se producen problemas adicionales o si se requiere cualquier otra solución, será necesario crear una solicitud de revisión independiente. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no califican para esta revisión específica. Para obtener una lista completa de los números de teléfono de servicio al cliente de Microsoft o para crear una solicitud de servicio independiente, visite el siguiente sitio Web de Microsoft:Nota: El formulario de "Descarga de Hotfix disponible" muestra los idiomas para los que el Hotfix está disponible. Si no ve su idioma, es porque no hay una revisión para ese idioma.

Información de archivo

La versión en inglés de esta revisión tiene los atributos de archivo (o atributos del archivo más reciente) mostrados en la tabla siguiente. Las fechas y horas de estos archivos se muestran en la hora Universal coordinada (UTC). Al ver la información del archivo, se convierte en hora local. Para encontrar la diferencia entre la hora UTC y la hora local, utilice la ficha zona horaria en el elemento de fecha y hora del Panel de Control.
versión de 32 bits (x 86)
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataformaRequisito de SP
Db2oledb.dll6.0.2048.0488,96003-Nov-200617:31x86SP1
Db2oledb.hNo aplicable24,57903-Nov-200617:36No aplicableSP1
Ddmstr.dll6.0.2048.044,03203-Nov-200617:31x86SP1
Drdaresync.exe6.0.2048.0337.40803-Nov-200617:32x86SP1
Microsoft.hostintegration.dataaccesslibrary.dll6.0.2048.086.01603-Nov-200617:31x86SP1
Microsoft.hostintegration.dataaccesstool.exe6.0.2048.02,703,36003-Nov-200617:32x86SP1
Microsoft.hostintegration.msdb2client.dll6.0.2048.0114,68803-Nov-200617:31x86SP1
Mseidb2c.dll6.0.2048.071,68003-Nov-200617:31x86SP1
Mseidb2d.dll6.0.2048.0435,20003-Nov-200617:31x86SP1
Mseidrda.dll6.0.2048.0695,80803-Nov-200617:32x86SP1
versión de 64 bits (x 64)
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataformaTipo de servicio
Db2oledb.dll7.0.2535.0758,54407-Nov-200612:34x64No aplicable
Microsoft.hostintegration.dataaccesslibrary.dll7.0.2535.02,550,61607-Nov-200612:34x64No aplicable
Microsoft.hostintegration.dataaccesstool.exe7.0.2535.0613,20007-Nov-200612:34x64No aplicable
Mseidrda.dll7.0.2535.01,355,53607-Nov-200612:34x64No aplicable
Snanls.dll7.0.2535.0128,77607-Nov-200612:34x64No aplicable
Db2oledb.dll7.0.2535.0516,88007-Nov-200612:34x86SYSWOW
Mseidrda.dll7.0.2535.0781,07207-Nov-200612:34x86SYSWOW
Snanls.dll7.0.2535.0105,22407-Nov-200612:34x86SYSWOW
Nota: Debido a la interdependencia entre archivos, la revisión más reciente que contiene estos archivos puede contener también archivos adicionales.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Más información

Esta revisión agrega compatibilidad con una nueva propiedad de cadena de conexión. Mediante el uso de la nueva propiedad de cadena de conexión, puede pasar un parámetro datetime de SQL Server a una base de datos de IBM DB2 como tipo de datos de IBM DB2 fecha . Proveedor OLE DB para DB2 elimina la información de hora en el valor del parámetro datetime de SQL Server. Por lo tanto, proveedor OLE DB para DB2 pasa la información de la fecha a la base de datos de IBM DB2.

La nueva propiedad de cadena de conexión tiene la siguiente definición:
Fecha y hora como fecha =valor
En esta propiedad de cadena de conexión, puede definir el valor como TRUE o FALSE. Si agrega el DateTime As Date = TRUE instrucción a la cadena de conexión, el proveedor OLE DB para DB2 convierte el parámetro datetime de SQL Server en el tipo de datos de IBM DB2 fecha . A continuación, el proveedor OLE DB para DB2 pasa el valor a la base de datos de IBM DB2.

Si agrega el DateTime As Date = FALSE instrucción a la cadena de conexión, el proveedor OLE DB para DB2 pasa el parámetro datetime de SQL Server a la base de datos de IBM DB2 tal como se especifica en la instrucción SQL. En este caso, el proveedor OLE DB para DB2 pasa la información de fecha y hora para la base de datos de IBM DB2.

Nota: Este comportamiento es el comportamiento predeterminado si no agrega la propiedad DateTime As Date a la cadena de conexión.

El siguiente ejemplo de cadena de conexión, muestra cómo utilizar la propiedad DateTime As Date .
; Everything after this line is an OLE DB initialization string.Provider=DB2OLEDB;Password=<Password>;Persist Security Info=True;User ID=<Username>;Initial Catalog=S105FRDM;Defer Prepare=False;Derive Parameters=False;Network Transport Library=TCP;Host CCSID=37;PC Code Page=1252;Network Address=<Address>;Network Port=446;Package Collection=DB2USER;Default Schema=DB2USER;Default Qualifier=DB2USER;DBMS Platform=DB2/AS400;Process Binary as Character=False;Connection Pooling=True;Units of Work=RUW;DateTime As Date=TRUE

Importante: Después de aplicar esta revisión y agregar la DateTime As Date = TRUE instrucción a la cadena de conexión, puede recibir el siguiente mensaje de error:
SQLSTATE: 22007, SQLCODE: -180
Este problema se produce si la columna de base de datos de IBM DB2 utiliza el tipo de datos TIMESTAMP de IBM DB2. Este problema se produce porque la base de datos de IBM DB2 espera recibir la información de fecha y hora cuando se pasa una consulta a una columna de base de datos de IBM DB2 que utiliza el tipo de datos TIMESTAMP de IBM DB2. El DateTime As Date = TRUE instrucción hace el proveedor OLE DB para DB2 eliminar la información de hora en el valor del parámetro datetime de SQL Server. Por lo tanto, los datos no son válidos cuando se pasa la consulta a la columna de base de datos de IBM DB2 que utiliza el tipo de datos TIMESTAMP de IBM DB2.

Si debe consultar una tabla IBM DB2 que utiliza el tipo de datos de IBM DB2 fecha y el tipo de datos TIMESTAMP de IBM DB2, tendrá que utilizar múltiples cadenas de conexión están configuradas para utilizar las propiedades correctas. A continuación, puede consultar correctamente los distintos tipos de datos IBM DB2.

Para obtener más información, haga clic en el siguiente número de artículo para verlo en Microsoft Knowledge Base:

824684 descripción de la terminología estándar que se utiliza para describir las actualizaciones de software de Microsoft

Los productos de terceros que se indican en este artículo están fabricados por compañías independientes de Microsoft. Microsoft no otorga ninguna garantía, implícita o de otro tipo, respecto al rendimiento o confiabilidad de estos productos.
Propiedades

Id. de artículo: 924599 - Última revisión: 14 ene. 2017 - Revisión: 1

Comentarios