Access produce un error al exportar los campos con el tipo de datos single o double a Oracle

Moderada: Requiere macro básico, codificación y conocimientos de interoperabilidad.

En este artículo se aplica a una base de datos de Microsoft Access (.mdb) y a un proyecto de Microsoft Access (.adp).

Síntomas

Cuando se utiliza el controlador ODBC de Oracle para exportar una tabla de Access con campos de tipo de datos Single o Double, el controlador no exporte esos campos como sigue.
El controlador Microsoft Oracle muestra el siguiente mensaje de error:
Microsoft Access no pudo anexar todos los datos a la tabla.

El contenido de los campos de < número > registros eliminado y 0 registros se han perdido debido a infracciones de clave.
  • Si se han eliminado datos, los datos que pegó o importó no coinciden los tipos de datos de campo o la propiedad tamaño del campo en la tabla de destino.
  • Si se han perdido los registros que pegó contienen valores de clave principal que ya existen en la tabla de destino, o bien infringen las reglas de integridad referencial para una relación definida entre tablas.
    ¿Desea continuar de todos modos?
Los controladores ODBC de Oracle, incluyendo la versión 8.1.6 mostrará el siguiente mensaje de error:
ODBC: falló la llamada
[Oracle] [ODBC] [ORA] ORA-01401: El valor insertado es demasiado grande para la columna (#1401)

Causa

En Microsoft Access 97, el proceso de exportación convierte los campos de tipo Single y Double en VarChar2(40). Sin embargo, en Microsoft Access 2000 y versiones posteriores, los campos se convierten en VarChar2(4), que él demasiado pequeño para contener los datos.

Solución

Para exportar correctamente los datos a Oracle, utilice una consulta basada en las tablas relevantes. Utilice la función CStr() para convertir el tipo de datos en cadena.

Por ejemplo, considere la siguiente sintaxis SQL:
SELECT tblExample.pkeyDataID, tblExample.dblTestFROM tblExample;

donde dblTest es un campo con un tipo de datos de doble. Convertir dblTest a un tipo de datos String realizando el siguiente cambio en la sintaxis SQL:
SELECT tblExample.pkeyDataID, CStr([dblTest]) AS Expr1FROM tblExample;

La consulta ahora puede exportarse con éxito a Oracle.

Este problema se ha resuelto en el Service Pack 8 (SP8) de Microsoft Jet 4.0 base de datos de motor. Para obtener más información acerca de la base de datos de motor de SP8 de Microsoft Jet 4.0, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

829558 información acerca del Service Pack 8 de Jet 4.0

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados al principio de este artículo.

Más información

Los productos de terceros que se analizan 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 la confiabilidad de estos productos.
Propiedades

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

Comentarios