Tünetek
Amikor a Microsoft SQL Server 2012-ben vagy az SQL Server 2014-ben Oracle-kiszolgálóhoz kapcsolt kiszolgálóról választ adatokat egy lekérdezést, előfordulhat, hogy a SZÁM típusa oszlop értékei csonkolódnak a lekérdezés eredményében.
Ok
A problémát az okozza, hogy a nem deklarált pontossággal/méretarányos Oracle NUMBER típusnak nincs egyértelmű 1:1 leképezése egy SQL Server adattípusra. Az SQL Server 2012 SP2 CU2 előtt az SQL Server leképezi ezeket az értékeket a karakterláncokkal, hogy biztosítsa a pontosságvesztés elkerülését. Ha azonban a lekérdezés megkövetelte ezen értékek rendezési sorrendjét, ez helytelen eredményt adhat. Az SQL Server 2012 SP2 CU2-ben a megfeleltetés numerikusra (38, 0) módosult, hogy lehetővé tegye a nagy egész kulcsok ábrázolását, amelyekre egyes adatbázissémák a SZÁM függvényt használják pontosság/méretezés nélkül. Ez regresszióhoz vezet, ha nem egész értékekre van szükség.
Megoldás
A javítás alkalmazása után az OLE DB-szolgáltató dupla értékként kezeli az ismeretlen pontosságú/méretarányú SZÁM értékeket. Ha a pontosság fontos, az értékek tartománya pedig nem elég nagy, engedélyezheti az új 7314-es jelölőt, amely az ilyen értékeket numerikusként kezdi kezelni (38, 10).
A hibát először az SQL Server következő összegző frissítésében javítottuk.
1. összegző frissítés a SQL Server 2014 SP1 verzióhoz /en-us/help/3067839
8. összegző frissítés a 2014. SQL Server. verzióhoz /en-us/help/3067836
6-os összegző frissítés a SQL Server 2012 SP2 rendszerhez /en-us/help/3052468
Az SQL Server összegző frissítéseinek ismertetése
Az SQL Server minden új összegző frissítése tartalmazza az összes gyorsjavítást és minden biztonsági javítást, amely az előző kumulatív frissítésben szerepelt. Tekintse meg az SQL Server legújabb összegző frissítéseit:
- Az SQL Server 2014 SP1 legújabb összegző frissítése
- Az SQL Server 2014 legújabb összegző frissítése
- Az SQL Server 2012 SP2 legújabb összegző frissítése
Kerülő megoldás
A probléma megoldásához először konvertálja az Oracle mezőt SZÁM típusról egy olyan adattípusra, amelyet az SQL Server teljes mértékben támogat.
Állapot
A Microsoft megerősítette, hogy ez egy olyan probléma a Microsoft-termékekben, amely az „Érintett szolgáltatás“ című szakaszban van felsorolva.
Harmadik felektől származó információkra vonatkozó jogi nyilatkozat
A külső gyártók ebben a cikkben említett termékeit a Microsofttól független vállalatok gyártják. A Microsoft nem vállal sem kifejezett, sem más jellegű jótállást e termékek megbízhatóságára és működésére vonatkozóan.