2011-09-29 96 views
1

我一直负责将一些数据从SQL Server 2000数据库中提取到磁盘上的平面格式。我有一点SQL Server的经验。使用BCP从SQL Server 2000导出图像列

存在一个表,其中包含存储在“IMAGE”类型列中的文件以及存储文件名的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。照片软件不会打开文件。

我认为我正在碰到某种字符编码问题。

我已经在-CCP(例如试用RAW)和-n选项中玩过了,但仍然无法实现。

在SQL塞雷尔语表有规则“SQL_Latin1_General_CP1_CI_AS”

我从我的Windows 7桌面远程运行BCP的排序规则。

任何想法我错了?任何帮助不胜感激。

回答

4

我通过改变BCP问你,当你调用命令的默认选项此工作:

BCP prompts

那带来的变化是从4比0更改前缀长度字段中的一个。

+0

发布的答案,当你找到解决你自己的问题 - 完美! –

0

BCP “选择从附件其中id = 1234的文件” queryout “C:\ myfile.doc” -S -T -n

此 [图像]后:I(输入大写字母 “I”] 输入 保存文件Ÿ

卡拉斯..乌尔文件是存在的