Je suis désolé si cette question a déjà été posée, mais je ne l'ai trouvé nulle part. J'ai une table qui stocke des fichiers en tant que BLOBS. La colonne qui contient le fichier est un type de données image. Je voudrais être en mesure d'extraire les données binaires hors de la colonne et le transformer en un fichier réel. Idéalement, j'aimerais pouvoir le faire avec BCP ou un studio de gestion si possible.Comment utiliser BCP ou Sql Server Management Studio pour extraire des données BLOB de Sql Server?
J'ai essayé le protocole BCP, mais pour une raison quelconque, lorsque j'essaie de sortir un document Office, Word pense qu'il est corrompu. Voici ce que j'ai essayé jusqu'à présent (évidemment les valeurs ont été changés pour protéger l'innocent :):
bcp "select document_binary_data from database where id = 12345" queryout "c:\filename.doc" -n -S server -U username -P password
Ce ne fonctionne pas bien? Des pensées?
Édition Il s'avère que vous n'avez pas besoin du drapeau natif -n. En outre, BCP essaie d'inclure un préfixe de 4 octets par défaut sur la colonne d'image - que vous voulez réellement cet ensemble à 0.
bcp "select document_binary_data from database where id = 12345" queryout "c:\filename.doc" -S server -U username -P password
Enter the file storage type of field document_binary [image]: Enter prefix-length of field document_binary [4]: 0 Enter length of field document_binary [0]: Enter field terminator [none]:
Je Aaron, nous faisons effectivement stocker tous nos documents sur le système de fichiers 95 % de notre application. Il y a un peu qui utilise encore blobs bien :( – Eric
Vous n'avez pas besoin d'effectuer une pré-remplir le fichier de format avec la longueur du champ, les travaux suivants pour moi (sauts de ligne après '9.0' et ce qui suit '1): '9,0 1 SqlBinary 0 0 « » 1 col1 « »' – Geoff
@ Aaron - apparemment, il y a beaucoup de problèmes avec l'exportation varbinary (max) à déposer (je viens de faire fini avec C# -. au bout de 3 heures à essayer de faites-le avec BCP). (le problème est avec refix-length de champ document_binary' qui devrait être réglé sur '0' - mais il nécessite une interaction de l'utilisateur.) Il peut également être fait avec le fichier FMT. accès au fichier FMT? existe-t-il un moyen d '"utiliser en ligne" le contenu fmt dans la commande bcp? –