Triệu chứng
Khi bạn thực hiện truy vấn để chọn dữ liệu từ máy chủ liên kết với Oracle bằng cách sử dụng nhà cung cấp OLE DB trong Microsoft SQL Server 2012 hoặc SQL Server 2014, các giá trị trong cột kiểu SỐ có thể bị cắt ngắn trong kết quả truy vấn.
Nguyên nhân
Sự cố này xảy ra do kiểu SỐ Oracle có độ chính xác/tỷ lệ không được khai báo có thể không có ánh xạ 1:1 rõ ràng đến kiểu dữ liệu SQL Server. Trước SQL Server 2012 SP2 CU2, SQL Server ánh xạ các giá trị đó vào các chuỗi để đảm bảo không xảy ra sự mất độ chính xác. Tuy nhiên, điều đó có thể dẫn đến kết quả không chính xác nếu truy vấn yêu cầu thứ tự sắp xếp trên các giá trị đó. Trong SQL Server 2012 SP2 CU2, ánh xạ được thay đổi thành số (38, 0) để cho phép biểu diễn các khóa số nguyên lớn mà một số sơ đồ cơ sở dữ liệu đang sử dụng NUMBER mà không có độ chính xác/tỷ lệ. Điều này dẫn đến hồi quy khi cần các giá trị không phải số nguyên.
Giải pháp
Sau khi bạn áp dụng bản sửa lỗi này, các giá trị NUMBER không xác định độ chính xác/tỷ lệ sẽ được coi là giá trị kép với OLE DB provider. Nếu độ chính xác rất quan trọng và phạm vi của các giá trị không đủ lớn, bạn có thể bật Cờ Theo dõi 7314 mới mà sẽ bắt đầu xử lý các giá trị như dạng số (38, 10).
Sự cố này được khắc phục lần đầu tiên trong bản cập nhật tích lũy tiếp theo của SQL Server.
Cập nhật tích lũy 1 cho SQL Server 2014 SP1 /en-us/help/3067839
Cập nhật Tích lũy 8 cho SQL Server 2014 /en-us/help/3067836
Cập nhật tích lũy 6 cho SQL Server 2012 SP2 /en-us/help/3052468
Giới thiệu về các bản cập nhật tích lũy cho SQL Server
Mỗi bản cập nhật tích lũy mới dành cho SQL Server chứa tất cả các bản sửa lỗi nóng và bản sửa lỗi bảo mật được tích hợp trong bản cập nhật tích lũy trước đó. Xem các bản cập nhật tích lũy mới nhất cho SQL Server:
- Bản cập nhật tích lũy mới nhất cho SQL Server 2014 SP1
- Bản cập nhật tích lũy mới nhất cho SQL Server 2014
- Bản cập nhật tích lũy mới nhất cho SQL Server 2012 SP2
Giải pháp thay thế
Để tránh sự cố này, trước tiên hãy chuyển đổi trường Oracle từ kiểu SỐ sang kiểu dữ liệu được SQL Server hỗ trợ hoàn toàn.
Trạng thái
Microsoft đã xác nhận rằng đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".
Tuyên bố từ chối trách nhiệm thông tin của bên thứ ba
Các sản phẩm bên thứ ba mà bài viết này đề cập được sản xuất bởi các công ty độc lập với Microsoft. Microsoft không đưa ra sự đảm bảo, dù là ngụ ý hay theo một hình thức khác, về hiệu suất hoặc mức độ tin cậy của những sản phẩm này.