Bạn đang sử dụng tham số -f "C:\bcpdir\bcpfile.fmt"
nhưng theo kinh nghiệm của tôi thì đó phải là -fC "C:\bcpdir\bcpfile.fmt"
. Thành thật mà nói, tôi không còn nhớ nữa tại sao ... Tôi đã từng thực hiện một cái gì đó tương tự như xuất tệp (.zip) từ cơ sở dữ liệu và lệnh của tôi có -fC
tham số cho tệp xuất. Tôi rất có thể cho bạn một lời giải thích thích hợp. Dù sao đi nữa, HTH.
Hãy thử lệnh sau:
EXEC master..xp_cmdshell 'BCP "SELECT data FROM CentricityPM.dbo.TempImageFour" QUERYOUT "C:\exportdir\testfile.pdf" -T -fC "C:\bcpdir\bcpfile.fmt"'
Một giải pháp thay thế là chỉ định -C RAW
quyền mua. Điều này chỉ rõ rằng không có chuyển đổi nào được thực hiện từ trang mã này sang trang mã khác.
EXEC master..xp_cmdshell 'BCP "SELECT data FROM CentricityPM.dbo.TempImageFour" QUERYOUT "C:\exportdir\testfile.pdf" -T -f "C:\bcpdir\bcpfile.fmt" -C RAW'
Ngoài ra, hãy đảm bảo rằng tệp định dạng của bạn có SQLBINARY
làm kiểu dữ liệu cho cột của bạn.