Tôi gặp sự cố khi sử dụng Trình hướng dẫn nhập trong SQL Server 2008 R2 để nhập bảng từ PostgreSQL. Tôi đã cài đặt trình điều khiển PostgreSQL ODBC, vì vậy đối với Nguồn dữ liệu trong Trình hướng dẫn nhập, tôi đã chọn "Nhà cung cấp dữ liệu .Net Framework cho Odbc" và cung cấp tên DSN cho cơ sở dữ liệu PostgreSQL của mình. Trình hướng dẫn tìm thấy các bảng ổn, nhưng khi tôi thực hiện nhập, tôi gặp lỗi
Không thể truy xuất thông tin cột cho dữ liệu nguồn và dữ liệu đích.
“Thanh toán” -> [dbo]. [Thanh toán]:
- Không tìm thấy cột -1.
Tôi đã tìm thấy giải pháp trong bài đăng trên blog của Microsoft tại đây. Rõ ràng vấn đề là các trình điều khiển ODBC khác nhau sử dụng các tên thuộc tính khác nhau khi báo cáo siêu dữ liệu cột. Để quá trình nhập hoạt động, tôi phải chỉnh sửa tệp "ProviderDescriptors.xml", nằm tại
C:\ Program Files \ Microsoft SQL Server \ 100 \ DTS \ ProviderDescriptors \ ProviderDescriptors.xml
Trong ...
... phần tử tôi đã phải thay đổi các thuộc tính từ ...
... đến ...
Đó là, tôi đã phải tinh chỉnh MaximumLengthColumnName
, NumericPre precisionColumnName
và NumericScaleColumnName
giá trị thuộc tính cho "LENGTH"
, "PRECISION"
và "SCALE"
, tương ứng.
Sau khi thay đổi đó được thực hiện, quá trình nhập từ PostgreSQL sang SQL Server đã chạy thành công.