Συμπτώματα
Όταν εκτελείτε ένα ερώτημα για να επιλέξετε δεδομένα από ένα διακομιστή συνδεδεμένο με την Oracle χρησιμοποιώντας την υπηρεσία παροχής OLE DB στον Microsoft SQL Server 2012 ή στον SQL Server 2014, οι τιμές στη στήλη Τύπος αριθμού μπορεί να περικοπούν στο αποτέλεσμα του ερωτήματος.
Αιτία
Αυτό το πρόβλημα παρουσιάζεται επειδή, ο τύπος αριθμού Oracle με μη δηλωμένη ακρίβεια/κλίμακα μπορεί να μην έχει σαφή αντιστοίχιση 1:1 σε έναν τύπο δεδομένων του SQL Server. Πριν από τον SQL Server 2012 SP2 CU2, ο SQL Server αντιστοιχίζει τέτοιες τιμές σε συμβολοσειρές για να βεβαιωθείτε ότι δεν συμβαίνει καμία απώλεια ακρίβειας. Ωστόσο, αυτό μπορεί να οδηγήσει σε εσφαλμένα αποτελέσματα, εάν το ερώτημα απαιτεί σειρά ταξινόμησης σε αυτές τις τιμές. Στον SQL Server 2012 SP2 CU2, η αντιστοίχιση μετατρέπεται σε αριθμητικό (38, 0) για να επιτρέψει την αντιπροσώπευση των μεγάλων ακέραιων κλειδιών που ορισμένα σχήματα βάσεων δεδομένων χρησιμοποιούν τον αριθμό χωρίς ακρίβεια/κλίμακα για το. Αυτό οδηγεί σε παλινδρόμηση όταν απαιτούνται μη ακέραιες τιμές.
Επίλυση
Αφού εφαρμόσετε αυτήν την επιδιόρθωση, οι ΑΡΙΘΜΗΤΙκές τιμές με άγνωστη ακρίβεια/κλίμακα αντιμετωπίζονται ως διπλές τιμές με την υπηρεσία παροχής OLE DB. Εάν η ακρίβεια είναι σημαντική και η περιοχή των τιμών δεν είναι αρκετά μεγάλη, μπορείτε να ενεργοποιήσετε τη νέα σημαία ανίχνευσης 7314 που θα άρχιζε να επεξεργάζεται τέτοιες τιμές ως αριθμητική (38; 10).
Το πρόβλημα διορθώθηκε για πρώτη φορά με την ακόλουθη αθροιστική ενημέρωση του SQL Server.
Αθροιστική ενημερωμένη έκδοση 1 για τον SQL Server 2014 SP1 /en-us/help/3067839
Αθροιστική ενημερωμένη έκδοση 8 για τον SQL Server 2014 /en-us/help/3067836
Αθροιστική ενημερωμένη έκδοση 6 για τον SQL Server 2012 SP2 /en-us/help/3052468
Κάθε νέα αθροιστική ενημέρωση για τον SQL Server περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις επιδιορθώσεις ασφαλείας που συμπεριλήφθηκαν στην προηγούμενη αθροιστική ενημέρωση. Ανάληψη ελέγχου των πιο πρόσφατων αθροιστικών ενημερώσεων για τον SQL Server:
Λύση
Για να επιλύσετε αυτό το ζήτημα, μετατρέψτε το πεδίο Oracle από τον τύπο αριθμού σε έναν τύπο δεδομένων που υποστηρίζεται πλήρως από τον SQL Server πρώτα.
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα πρόβλημα στα προϊόντα της Microsoft που παρατίθενται στην ενότητα "ισχύει για".
Τα προϊόντα άλλων κατασκευαστών που αναφέρονται σε αυτό το άρθρο έχουν κατασκευαστεί από εταιρείες ανεξάρτητες από τη Microsoft. Η Microsoft δεν παρέχει καμία εγγύηση, σιωπηρή ή άλλη, σχετικά με τις επιδόσεις ή την αξιοπιστία αυτών των προϊόντων.