Síntomas
Al ejecutar una consulta para seleccionar datos de un servidor vinculado a Oracle mediante el proveedor OLE DB en Microsoft SQL Server 2012 o SQL Server 2014, los valores de la columna tipo de número se pueden truncar en el resultado de la consulta.
Causa
Este problema se produce porque el tipo NUMBER de Oracle con precisión/escala no declarada puede no tener una asignación clara de 1:1 a un tipo de datos de SQL Server. Antes de SQL Server 2012 SP2 CU2, SQL Server asigna valores a cadenas para asegurarse de que no ocurre ninguna pérdida de precisión. Sin embargo, eso podría dar lugar a resultados incorrectos si la consulta requería un criterio de ordenación en dichos valores. En SQL Server 2012 SP2 CU2, la asignación se cambia a Numeric (38, 0) para permitir la representación de claves enteras grandes que algunos esquemas de base de datos usan número sin precisión/escala para. Esto provocará regresiones cuando sea necesario un valor no entero.
Resolución
Después de aplicar esta corrección, los valores NUMÉRICOs con precisión o escala desconocidas se tratan como valores double con el proveedor OLE DB. Si la precisión es importante y el rango de los valores no es suficientemente grande, puede habilitar el nuevo indicador de seguimiento 7314 que empezaría a considerar esos valores como numéricos (38, 10).
El problema se solucionó por primera vez en la siguiente actualización acumulativa de SQL Server.
Actualización acumulativa 1 para SQL Server 2014 SP1 /en-us/help/3067839
Actualización acumulativa 8 para SQL Server 2014 /en-us/help/3067836
Actualización acumulativa 6 para SQL Server 2012 SP2 /en-us/help/3052468
Cada actualización acumulativa para SQL Server contiene todas las revisiones y todas las revisiones de seguridad incluidas en la actualización acumulativa anterior. Consulte las últimas actualizaciones acumulativas para SQL Server:
Solución alternativa
Para evitar este problema, convierta el campo de Oracle de tipo número a un tipo de datos que sea totalmente compatible con SQL Server en primer lugar.
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "Se aplica a".
Los productos de terceros que se mencionan en este artículo están fabricados por compañías que son independientes de Microsoft. Microsoft no ofrece ninguna garantía, ya sea implícita o de otro tipo, sobre la confiabilidad o el rendimiento de dichos productos.