Экспорт столбца Image из SQL Server 2000 с помощью BCP


Мне было поручено извлечь некоторые данные из базы данных SQL Server 2000 в плоский формат на диске. У меня мало опыта работы с SQL Server.

Существует таблица, содержащая файлы, хранящиеся в столбце типа "IMAGE", а также столбец nvarchar, хранящий имя файла.

Похоже, что в таблице хранится множество типов файлов: Word docs, XLS, TIF, txt, zip-файлы и т. д.

Я пытаюсь извлечь только одну строку с помощью BCP, делая что-то вроде это:

bcp "select file from attachments where id = 1234" queryout "c:myfile.doc" -S <host> -T -n

Это сохраняет файл, но он поврежден, и я не могу открыть его с помощью Word. Когда я открываю файл с word, я вижу много текста, но я также получаю много непроизносимых символов. У меня есть похожие проблемы при попытке извлечь файлы изображений, например TIF. Программное обеспечение для фотографий не откроет файлы.

Я предполагаю, что столкнулся с какими-то проблемами кодирования символов.

Я поиграл с опциями-C (например, попробовал RAW) и-n в BCP, но все еще не могу получить его работа.

Таблица в SQL Serer имеет параметры сортировки "SQL_Latin1_General_CP1_CI_AS"

Я запускаю BCP удаленно с рабочего стола Windows 7.

Есть идеи, где я ошибаюсь? Любая помощь очень ценится.

2 2

2 ответа:

Я получил эту работу, изменив параметры по умолчанию, о которых BCP спрашивает вас при вызове команды:

Подсказки BCP

Единственным отличием было изменение поля длины префикса с 4 на 0.

Bcp "выберите файл из вложений, где id = 1234" queryout "c:\myfile.doc " - S-T-n

После этого [изображение]: I (введите заглавную "I"] Ноль Ноль Входить сохранить файл Y

Каллас.. файл ur есть