Está utilizando el parámetro -f "C:\bcpdir\bcpfile.fmt"
pero según mi experiencia, debería ser -fC "C:\bcpdir\bcpfile.fmt"
. Para ser honesto, ya no recuerdo por qué... Una vez hice algo similar a exportar archivos (.zip) desde la base de datos y mi comando tiene -fC
parámetro para el archivo de exportación. Ojalá pudiera darte una explicación adecuada. De todos modos, HTH.
Pruebe el siguiente comando:
EXEC master..xp_cmdshell 'BCP "SELECT data FROM CentricityPM.dbo.TempImageFour" QUERYOUT "C:\exportdir\testfile.pdf" -T -fC "C:\bcpdir\bcpfile.fmt"'
Una alternativa es especificar el -C RAW
opción. Esto especifica que no se realiza ninguna conversión de una página de códigos a otra.
EXEC master..xp_cmdshell 'BCP "SELECT data FROM CentricityPM.dbo.TempImageFour" QUERYOUT "C:\exportdir\testfile.pdf" -T -f "C:\bcpdir\bcpfile.fmt" -C RAW'
Además, asegúrese de que su archivo de formato tenga SQLBINARY
como tipo de datos para su columna.