Sümptomid
Kui käivitate päringu andmete valimiseks Oracle ' i lingitud serverist, kasutades selleks, et kasutada OLE DB pakkujat rakenduses Microsoft SQL Server 2012 või SQL Server 2014, võib veerus NUMBER Type olevad väärtused olla päringu tulemis kärbitud.
Põhjus
See probleem ilmneb seetõttu, et Oracle ' i numbri tüüp, millel pole deklareeritud täpsust/skaalat, ei pruugi olla selge 1:1 vastendamine SQL serveri andmetüübiga. Enne SQL Server 2012 SP2 CU2, vastendab SQL Server need väärtused stringid veendumaks, et Precision kadumist ei juhtu. Kuid see võib põhjustada ebaõigeid tulemeid, kui päring nõudis sellistel väärtustel sortimisjärjestust. SQL Server 2012 SP2 CU2 korral muudetakse vastendus arvuks (38; 0), et lubada suurte täisarvude võtmete esindatust, mida mõned andmebaasi skeemid kasutavad ARVUks, mis ei ole Precision/mõõtkavas. See toob kaasa regressiooni, kui on vaja mitte-täisarvulisi väärtusi.
Lahendus
Pärast selle paranduse rakendamist koheldakse tundmatu täpsuse/skaalaga väärtusi kahekordsete väärtustena OLE DB pakkujaga. Kui täpsus on oluline ja väärtuste vahemik pole piisavalt suur, saate lubada uue jälituslipp 7314, mis hakkaks neid väärtusi arvuliseks (38, 10) töötlema.
Probleem parandati esmakordselt SQL serveri järgmises koondvärskenduses.
Kumulatiivne Update 1 SQL Server 2014 SP1 jaoks /en-us/help/3067839
Kumulatiivne Update 8 SQL Server 2014 /en-us/help/3067836
Kumulatiivne Update 6 SQL Server 2012 SP2 jaoks /en-us/help/3052468
Iga uus koondvärskenduses SQL Server sisaldab kõiki käigultparandused ja kõik turvaparandusi, mis kuulusid eelmise koondvärskenduse. Vaadake SQL serveri kumulatiivseid värskendusi.
Lahendus
Selle probleemi lahendamiseks teisendage Oracle ' i väli numbri tüübist andmetüübiks, mis on SQL serveri poolt täielikult toetatud.
Olek
Microsoft on kinnitanud, et see probleem esineb jaotises "kehtib järgmiste toodete kohta" loetletud Microsofti toodetes.
Selles artiklis käsitletud teiste tootjate tooteid valmistavad Microsoftiga mitteseotud ettevõtted. Microsoft ei anna nende toodete jõudlusele ega töökindlusele mingit kaudset ega muud garantiid.