KB3051993 – RETTELSE: Værdien af typen TAL afkortes, når du vælger data fra en Oracle-tilknyttet server ved hjælp af OLE DB-provider

Gælder for
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Symptomer

Når du udfører en forespørgsel for at vælge data fra en Oracle-tilknyttet server ved hjælp af OLE DB-provider i Microsoft SQL Server 2012 eller SQL Server 2014, kan værdierne i kolonnen TALTYPE blive afkortet i forespørgselsresultatet.

Årsag

Dette problem opstår, fordi Oracle NUMBER-typen med ikke-deklareret præcision/skalering muligvis ikke har en klar 1:1-tilknytning til en SQL Server-datatype. Før SQL Server 2012 SP2 CU2 knytter SQL Server disse værdier til strenge for at sikre, at der ikke sker noget tab af præcision. Det kunne dog føre til forkerte resultater, hvis forespørgslen krævede sorteringsrækkefølge for sådanne værdier. I SQL Server 2012 SP2 CU2 ændres tilknytningen til numerisk (38, 0) for at give mulighed for repræsentation af nøgler med stort heltal, som nogle databaseskemaer bruger TAL uden præcision/skalering til. Dette medfører regressioner, når der kræves værdier, der ikke er heltal.

Løsning

Når du har anvendt denne rettelse, behandles TAL-værdier med ukendt præcision/skalering som dobbelte værdier med OLE DB-provider. Hvis nøjagtigheden er vigtig, og området af værdierne ikke er stort nok, kan du aktivere det nye sporingsflag 7314, der vil begynde at behandle disse værdier som numeriske (38, 10).

Problemet blev først løst i følgende kumulative opdatering af SQL Server.

Kumulativ opdatering 1 til SQL Server 2014 SP1 /en-us/help/3067839

Samlet opdatering 8 til SQL Server 2014 /en-us/help/3067836

Samlet opdatering 6 til SQL Server 2012 SP2 /en-us/help/3052468

Om kumulative opdateringer til SQL Server

Hver ny kumulativ opdatering til SQL Server indeholder alle de hotfixes og alle de sikkerhedsrettelser, der fulgte med den forrige kumulative opdatering. Se de seneste kumulative opdateringer til SQL Server:

      

Løsning

Du kan løse dette problem ved først at konvertere Oracle-feltet fra TALTYPE til en datatype, der understøttes fuldt ud af SQL Server.

Status

Microsoft har bekræftet, at dette er et problem i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".

Ansvarsfraskrivelse for tredjepartsoplysninger

De tredjepartsprodukter, der beskrives i denne artikel, er produceret af firmaer, der er uafhængige af Microsoft. Microsoft påtager sig intet ansvar, hverken underforstået eller på anden måde, for funktionaliteten eller pålideligheden af disse produkter.