Проблемы
При выполнении запроса для выбора данных из связанного сервера Oracle с помощью поставщика OLE DB в Microsoft SQL Server 2012 или SQL Server 2014 значения в столбце Тип числа могут быть усечены в результатах запроса.
Причина
Эта проблема возникает из-за того, что тип номера Oracle с необъявленной точностью и масштабом не может иметь четкое сопоставление 1:1 для типа данных SQL Server. Перед тем как SQL Server 2012 с пакетом обновления 2 (SP2) CU2, SQL Server сопоставляет эти значения со строками, чтобы убедиться в отсутствии потерь точности. Тем не менее, это может привести к неправильным результатам, если запрос на сортировку для таких значений требуется. В SQL Server 2012 с пакетом обновления 2 (SP2) CU2 сопоставление меняется на numeric (38; 0) для представления длинных целочисленных ключей, для которых в некоторых схемах базы данных используется число без точности и масштаба. Это приводит к регрессии, когда требуются Нецелочисленные значения.
Решение
После того как вы установите это исправление, ЧИСЛовые значения с неизвестной точностью и масштабом рассматриваются как двойные значения с помощью поставщика OLE DB. Если точность имеет большое значение, а диапазон значений не достаточен, вы можете включить новый флаг трассировки 7314, который будет начинать рассматривать такие значения как числовые (38, 10).
Эта проблема впервые устранена в следующем накопительном обновлении SQL Server.
Накопительное обновление 1 для SQL Server 2014 с пакетом обновления 1 (SP1) /en-us/help/3067839
Накопительное обновление 8 для SQL Server 2014 /en-us/help/3067836
Накопительное обновление 6 для SQL Server 2012 с пакетом обновления 2 (SP2) /en-us/help/3052468
Все новые накопительные обновления для SQL Server содержат все исправления и все исправления для системы безопасности, которые были включены в предыдущий накопительный пакет обновления. Ознакомьтесь с самыми последними накопительными обновлениями для SQL Server.
Обходное решение
Для решения этой проблемы преобразуйте поле Oracle из ЧИСЛового типа в тип данных, который полностью поддерживается SQL Server.
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Продукты сторонних производителей, которые обсуждаются в этой статье, произведены независимыми от корпорации Майкрософт компаниями. Корпорация Майкрософт не предоставляет каких-либо гарантий, подразумеваемых или иных, относительно производительности и надежности этих продуктов.