我的任务是将一些数据从SQL Server 2000数据库中提取到磁盘上的平面格式。我的SQL Server经验很少。
有一个表包含存储在“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。照片软件无法打开文件。
我认为我遇到了某种字符编码问题。
我在BCP中玩过-C(例如尝试RAW)和-n选项,但仍无法使其工作。
SQL Serer中的表具有“SQL_Latin1_General_CP1_CI_AS”的排序规则
我正在从Windows 7桌面远程运行BCP。
知道我哪里出错了吗?非常感谢任何帮助。
答案 0 :(得分:5)
我通过更改BCP在您调用命令时询问的默认选项来实现此目的:
产生差异的是将prefix-length字段从4更改为0.
答案 1 :(得分:0)
bcp“从附件中选择文件,其中id = 1234”queryout“c:\ myfile.doc”-S -T -n
之后 [图片]:我(输入大写“我”] 0 0 输入 保存文件Y
kallas ..你的文件在那里