Мне было поручено извлечь некоторые данные из базы данных SQL Server 2000 в плоский формат на диске. У меня мало опыта работы с SQL Server.
Существует таблица, которая содержит файлы, хранящиеся в столбце типа «ИЗОБРАЖЕНИЕ», вместе со столбцом nvarchar, хранящим имя файла.
Похоже, в таблице хранится множество типов файлов: документы Word, XLS, TIF, txt, zip-файлы и т. Д.
Я пытаюсь извлечь только одну строку, используя BCP, делая что-то вроде этого:
bcp "select file from attachments where id = 1234" queryout "c:\myfile.doc" -S <host> -T -n
Это сохраняет файл, но он поврежден, и я не могу открыть его с помощью Word. Когда я открываю файл словом, я вижу много текста, но я также получаю много неперерисовываемых символов. У меня похожие проблемы при попытке извлечь файлы изображений, например, TIF. Программа для работы с фотографиями не открывает файлы.
Полагаю, у меня проблемы с кодировкой символов.
Я играл с опциями -C (например, RAW) и -n в BCP, но все еще не могу заставить его работать.
Таблица в SQL Serer имеет параметры сортировки «SQL_Latin1_General_CP1_CI_AS»
Я запускаю BCP удаленно с моего рабочего стола Windows 7.
Есть идеи, где я иду не так? Любая помощь с благодарностью.