Simptomi
Kad veicat vaicājumu, lai atlasītu datus no Oracle saistītā servera, izmantojot OLE DB nodrošinātāju programmā Microsoft SQL Server 2012 vai SQL Server 2014, kolonnas NUMBER Type vērtības var tikt saīsinātas vaicājuma rezultātā.
Cēlonis
Šī problēma rodas tāpēc, ka Oracle numura tips ar nedeklarētu precizitāti/skalu, iespējams, nav skaidri 1:1 kartējums ar SQL Server datu tipu. Pirms SQL Server 2012 SP2 CU2, SQL Server kartē šādas vērtības uz virknēm, lai pārliecinātos, vai netiek veikts precizitātes zudums. Taču tas var izraisīt nepareizus rezultātus, ja vaicājums pieprasīja kārtošanas secību šīm vērtībām. Programmā SQL Server 2012 SP2 CU2 kartējums tiek mainīts uz skaitlisks (38,0), lai būtu iespējama lielu veselu skaitļu atslēgu pārstāvība, kas dažās datu bāzu shēmās izmanto numuru bez precizitātes/mēroga. Tas rada regresijas, ja ir nepieciešamas vērtības, kas nav vesels skaitlis.
Risinājums
Pēc šī labojuma lietošanas SKAITLISKās vērtības ar nezināmu precizitāti/skalu tiek uzskatītas par dubultajām vērtībām ar OLE DB nodrošinātāju. Ja precizitāte ir svarīga un vērtību diapazons nav pietiekami liels, varat iespējot jauno izsekošanas karodziņu 7314, kas sāktu apstrādāt šādas vērtības kā skaitliskas (38, 10).
Šī problēma pirmo reizi tika izlabota tālāk sniegtajā SQL Server kumulatīvajā atjauninājumā.
Kumulatīvais atjauninājums 1 SQL Server 2014 SP1 /en-us/help/3067839
Kumulatīvais atjauninājums 8 SQL Server 2014 /en-us/help/3067836
Kumulatīvais atjauninājums 6 SQL Server 2012 SP2 /en-us/help/3052468
Katrā jaunajā kumulatīvajā SQL Server atjauninājumā ir iekļauti visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā kumulatīvajā atjauninājumā. Skatiet jaunākos kumulatīvos atjauninājumus SQL Server:
Risinājums
Lai novērstu šo problēmu, konvertējiet Oracle lauku no numura tipa uz datu tipu, ko vispirms atbalsta SQL Server.
Statusa
Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir norādīti sadaļā "attiecas uz".
Šajā rakstā minētos trešo pušu produktus ražo no Microsoft neatkarīgi uzņēmumi. Microsoft nesniedz nekādas netiešas vai cita veida garantijas par šo produktu veiktspēju vai uzticamību.