Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Colonna immagine BLOB di SQL Server - estrazione con queryout BCP - file danneggiati E bug

Stai usando il parametro -f "C:\bcpdir\bcpfile.fmt" ma dalla mia esperienza dovrebbe essere -fC "C:\bcpdir\bcpfile.fmt" . Ad essere sincero non ricordo più perché... una volta ho fatto qualcosa di simile per esportare file (.zip) dal database e il mio comando ha -fC parametro per il file di esportazione. Vorrei poterti dare una spiegazione adeguata. Comunque, HTH.

Prova il seguente comando:

EXEC master..xp_cmdshell 'BCP "SELECT data FROM CentricityPM.dbo.TempImageFour" QUERYOUT "C:\exportdir\testfile.pdf" -T -fC "C:\bcpdir\bcpfile.fmt"'

Un'alternativa è specificare il -C RAW opzione. Ciò specifica che non viene eseguita alcuna conversione da una tabella codici a un'altra.

EXEC master..xp_cmdshell 'BCP "SELECT data FROM CentricityPM.dbo.TempImageFour" QUERYOUT "C:\exportdir\testfile.pdf" -T -f "C:\bcpdir\bcpfile.fmt" -C RAW'

Inoltre, assicurati che il tuo file di formato abbia SQLBINARY come tipo di dati per la tua colonna.