Ознаки
Під час виконання запиту для вибору даних із сервера, пов'язаного з Oracle, за допомогою постачальника OLE DB в Microsoft SQL Server 2012 або SQL Server 2014 значення в стовпці тип числа можуть бути обітнуто в результатах запиту.
Причина
Ця проблема виникає через те, що тип номера Oracle з неоголошеною точністю або шкалою не може мати чітке зіставлення 1:1 із типом даних SQL Server. Перед SQL Server 2012 SP2 CU2, SQL Server зіставляє ці значення з рядками, щоб переконатися, що не відбувається жодних втрат точності. Однак це може призвести до неправильних результатів, якщо запит на сортування виконується за таким значенням. У SQL Server 2012 SP2 CU2, зіставлення буде перетворено на числовий (38, 0), щоб дозволити відображення великих числових ключів, у яких деякі схеми бази даних використовують число без точності та масштабу. Це призводить до регресія, коли потрібні не ціле значення.
Спосіб вирішення
Після інсталяції цього виправлення ЧИСЛОВІ значення з невідомими точністю та масштабом вважаються подвійними значеннями в постачальника даних OLE. Якщо точність має важливе значення, а діапазон значень не достатньо великий, можна ввімкнути новий прапор трасування 7314, який почне розглядати такі значення як числові (38; 10).
Ця проблема була спочатку зафіксоване в цьому сукупному оновленні сервера SQL Server.
Сукупне оновлення 1 для SQL Server 2014 SP1 /en-us/help/3067839
Сукупне оновлення 8 для SQL Server 2014 /en-us/help/3067836
Сукупне оновлення 6 для SQL Server 2012 SP2 /en-us/help/3052468
Кожне нове Сукупне оновлення для SQL Server містить усі поточні виправлення та всі виправлення системи безпеки, які були включені до попереднього сукупного оновлення. Ознайомтеся з найновішими сукупними оновленнями для сервера SQL Server:
Інші способи вирішення
Щоб вирішити цю проблему, Перетворюйте поле Oracle з типу "число" на тип даних, який повністю підтримується на сервері SQL Server.
Стан
Корпорація Майкрософт підтвердила, що це проблема в продуктах Microsoft, перелічених у розділі "застосовується до".
Продукти, про які йдеться в цій статті, виготовлено сторонніми виробниками, що не залежать від корпорації Майкрософт. Корпорація Майкрософт не надає жодних гарантій, явних або неявних, стосовно якості чи надійності роботи таких продуктів.