Đoán ở đây trong khi tôi chờ câu trả lời cho nhận xét, nói chung khi một gói chạy tốt trong BIDS nhưng không hoạt động từ dòng lệnh, tôi thấy nó có liên quan đến sự không tương thích 64/32 bit.
Bạn có đang sử dụng Excel, Access hay bất kỳ thứ gì khác mà bên dưới trang tính sử dụng trình điều khiển JET không? Điều đó chỉ hoạt động ở chế độ 32 bit.
Trên hệ điều hành 64 bit, theo mặc định khi bạn tạo kết nối ODBC mới, bạn sẽ tạo nó trong không gian tên 64 bit mà phiên bản 32 bit sẽ không thể truy cập?
Bạn đang sử dụng trình điều khiển Informix hoặc UDB / DB2? Tôi chỉ tìm thấy 32 phiên bản trong số đó.
Chạy một gói từ dòng lệnh
dtexec
là cơ chế dòng lệnh để chạy một gói SSIS. Nó có 2 phiên bản dành cho hệ điều hành 64 bit, cả hai đều được đặt tên là dtexec
và nói chung 32 bit được tham chiếu trong biến môi trường Windows Path
Trên hệ điều hành 64 bit, đường dẫn mặc định đến 64 bit sẽ là "c:\Program Files\Microsoft SQL Server\100\DTS\Binn\DTExec.exe"
Vẫn trên hệ điều hành 64 bit, đường dẫn đến phiên bản 32 sẽ là "c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe"
Để chạy một gói có tên FooBar.dtsx sống trong C:\ Src \ MyProject \ MyProject, lệnh gọi sẽ là
"c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" /file C:\Src\MyProject\MyProject\FooBar.dtsx
Nếu gói đó nằm trên SQL Server (DEVSQL01) trong thư mục MyProject, thì đây sẽ là lệnh gọi để chạy cùng một gói.
"c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" /SQL \MyProject\FooBar /SERVER DEVSQL01
Chỉnh sửa
Để áp dụng cấu hình, bạn cần chỉ định /CONF
tùy chọn
"c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" /file C:\Src\MyProject\MyProject\FooBar.dtsx /CONF C:\FooBar.dtsConfig
Nhìn vào nhận xét của bạn, sự khác biệt duy nhất giữa cách sử dụng của chúng tôi là bạn đã gói mọi thứ trong dấu ngoặc kép. Hãy thử nó mà không có dấu ngoặc kép trước và sau.