Symptom
När du kör en fråga för att välja data från en Oracle-länkad server med OLE DB-providern i Microsoft SQL Server 2012 eller SQL Server 2014 kan värdena i kolumnen NUMMERTYP trunkeras i frågeresultatet.
Orsak
Det här problemet uppstår eftersom Oracle NUMBER-typen med icke-deklarerad precision/skala kanske inte har en tydlig 1:1-mappning till en SQL Server -datatyp. Före SQL Server 2012 SP2 CU2 mappar SQL Server sådana värden till strängar för att se till att ingen förlust av precision uppstår. Det kan dock leda till felaktiga resultat om frågan kräver sorteringsordning på sådana värden. I SQL Server 2012 SP2 CU2 ändras mappningen till numerisk (38, 0) för att möjliggöra representation av stora heltalsnycklar som vissa databasscheman använder TAL utan precision/skala för. Det leder till regressioner när andra värden än heltal behövs.
Lösning
När du har installerat den här korrigeringen behandlas TAL-värden med okänd precision/skala som dubbla värden med OLE DB-providern. Om precisionen är viktig och värdeintervallet inte är tillräckligt stort kan du aktivera den nya spårningsflaggan 7314 som börjar behandla sådana värden som numeriska (38, 10).
Problemet åtgärdades först i följande kumulativa uppdatering av SQL Server.
Kumulativ uppdatering 1 för SQL Server 2014 SP1 /en-us/help/3067839
Kumulativ uppdatering 8 för SQL Server 2014 /en-us/help/3067836
Kumulativ uppdatering 6 för SQL Server 2012 SP2 /en-us/help/3052468
Om kumulativa uppdateringar för SQL Server
Varje ny kumulativ uppdatering för SQL Server innehåller alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingick i den tidigare kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:
- Senaste kumulativa uppdateringen för SQL Server 2014 SP1
- Senaste kumulativa uppdateringen för SQL Server 2014
- Senaste kumulativa uppdateringen för SQL Server 2012 SP2
Lösning
Lös problemet genom att först konvertera Oracle-fältet från typen TAL till en datatyp som stöds fullt ut av SQL Server.
Status
Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".
Ansvarsfriskrivning från tredje part
De produkter från tredje part som beskrivs i den här artikeln är tillverkade av företag som är oberoende av Microsoft. Microsoft utfärdar inga som helst garantier för dessa produkters funktion och tillförlitlighet.