Áp dụng cho
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)

Triệu chứng

Khi bạn thực hiện một truy vấn để chọn dữ liệu từ một máy chủ được liên kết 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 cụt trong kết quả truy vấn.

Nguyên nhân

Sự cố này xảy ra vì, kiểu số Oracle có độ chính xác không khai báo có thể không có ánh xạ rõ ràng 1:1 vào kiểu dữ liệu SQL Server. Trước khi SQL Server 2012 SP2 CU2, bản đồ SQL Server các giá trị đó thành chuỗi để đảm bảo rằng không có lỗ chính xác xảy ra. Tuy nhiên, có thể dẫn đến kết quả không chính xác nếu yêu cầu sắp xếp truy vấn thứ tự trên các giá trị đó. Trong SQL Server 2012 SP2 CU2, bản đồ sẽ được thay đổi thành số (38, 0) để cho phép biểu thị các phím số nguyên lớn mà một số trình chuyển đổi cơ sở dữ liệu đang dùng số mà không có độ chính xác/tỉ lệ cho. Điều này sẽ dẫn đến regressions khi cần các giá trị không phải là số nguyên.

Mỗi bản Cập Nhật tích lũy mới cho SQL Server chứa tất cả các hotfix và tất cả các bản sửa lỗi bảo mật đã được đưa vào bản Cập Nhật tích lũy trước đó. Kiểm tra các bản Cập Nhật tích lũy mới nhất cho SQL Server:

Cách giải quyết

Để giải quyết vấn đề này, hãy chuyển đổi trường Oracle từ kiểu số đến kiểu dữ liệu được SQL Server hỗ trợ đầy đủ.

Trạng thái

Microsoft đã xác nhận đâ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".

Các sản phẩm của bên thứ ba mà bài viết này thảo luận được các công ty độc lập với Microsoft sản xuất. Microsoft không bảo hành, dù ngụ ý hay không, về hiệu suất hoạt động hoặc độ tin cậy của các sản phẩm này.

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.