Používáte parametr -f "C:\bcpdir\bcpfile.fmt"
ale z mé zkušenosti by to mělo být -fC "C:\bcpdir\bcpfile.fmt"
. Abych byl upřímný, už si nepamatuji proč... Jednou jsem udělal něco podobného pro export souborů (.zip) z databáze a můj příkaz má -fC
parametr pro exportovaný soubor. Přál bych si, abych vám mohl poskytnout správné vysvětlení. Každopádně HTH.
Zkuste následující příkaz:
EXEC master..xp_cmdshell 'BCP "SELECT data FROM CentricityPM.dbo.TempImageFour" QUERYOUT "C:\exportdir\testfile.pdf" -T -fC "C:\bcpdir\bcpfile.fmt"'
Alternativou je zadat -C RAW
volba. To určuje, že se neprovádí žádná konverze z jedné kódové stránky na druhou.
EXEC master..xp_cmdshell 'BCP "SELECT data FROM CentricityPM.dbo.TempImageFour" QUERYOUT "C:\exportdir\testfile.pdf" -T -f "C:\bcpdir\bcpfile.fmt" -C RAW'
Také se ujistěte, že váš formátový soubor má SQLBINARY
jako datový typ pro váš sloupec.