Problembeschreibung
Wenn Sie eine Abfrage ausführen, um Daten von einem Oracle-verknüpften Server mithilfe des OLE DB-Anbieters in Microsoft SQL Server 2012 oder SQL Server 2014 auszuwählen, werden die Werte in der Spalte "Zahlentyp" möglicherweise im Abfrageergebnis abgeschnitten.
Ursache
Dieses Problem tritt auf, weil der Oracle-Nummerntyp mit nicht deklarierter Genauigkeit/Dezimalstellen möglicherweise keine klare 1:1-Zuordnung zu einem SQL Server-Datentyp aufweist. Bevor SQL Server 2012 SP2 Cu2, ordnet SQL Server diesen Werten Zeichenfolgen zu, um sicherzustellen, dass kein Genauigkeitsverlust eintritt. Dies kann jedoch zu falschen Ergebnissen führen, wenn die Abfrage die Sortierreihenfolge für diese Werte erfordert. In SQL Server 2012 SP2 Cu2 wird die Zuordnung in numeric (38; 0) geändert, um die Darstellung von großen ganzzahligen Schlüsseln zu ermöglichen, für die einige Datenbankschemas eine Zahl ohne Genauigkeit/Skalierung verwenden. Dies führt zu Regressionen, wenn nicht ganzzahlige Werte benötigt werden.
Fehlerbehebung
Nachdem Sie diesen Fix angewendet haben, werden Zahlenwerte mit unbekannter Genauigkeit/Dezimalstellen als Double-Werte mit dem OLE DB-Anbieter behandelt. Wenn die Genauigkeit wichtig ist und der Bereich der Werte nicht groß genug ist, können Sie das neue Ablaufverfolgungsflag 7314 aktivieren, das mit der Behandlung solcher Werte beginnen würde (38; 10).
Das Problem wurde zuerst im folgenden kumulativen Update von SQL Server behoben.
Kumulatives Update 1 für SQL Server 2014 SP1 /en-us/help/3067839
Kumulatives Update 8 für SQL Server 2014 /en-us/help/3067836
Kumulatives Update 6 für SQL Server 2012 SP2 /en-us/help/3052468
Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheitsupdates, die im vorherigen kumulativen Update enthalten waren. Schauen Sie sich die neuesten kumulativen Updates für SQL Server an:
Problemumgehung
Um dieses Problem zu umgehen, konvertieren Sie das Oracle-Feld vom Number-Typ in einen Datentyp, der von SQL Server zuerst vollständig unterstützt wird.
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Die in diesem Artikel genannten Drittanbieterprodukte stammen von Herstellern, die von Microsoft unabhängig sind. Microsoft gewährt keine implizite oder sonstige Garantie in Bezug auf die Leistung oder Zuverlässigkeit dieser Produkte.