在sql 2000中使用bcp导出图像数据

时间:2014-12-24 12:20:19

标签: blob sql-server-2000 docx bcp

您好我有一个sql 2000数据库,其中大量扫描文档存储为pdf,word文档存储在图像数据类型中。 我需要将它们导出到文件中。 我已经编写了使用xp_cmdshell和bcp来执行此操作的代码。看看其他问题,我创建了一个fmt文件,如下所示:

8.0
1
1       SQLIMAGE      0       0       ""                        1     FILEDATA        ""

命令是

bcp "select filedata FROM attacheddocuments where pkey = '+ convert (varchar, @imageid) + '" queryout "c:\scans\' + @imagefilename + '"  -T  -f c:\scans\attached.fmt

然而,当我运行查询时,它会创建所有文件,但不能在word或acrobat中打开它们。都报告该文件已损坏。 相反,我运行命令

bcp "select filedata FROM attacheddocuments where pkey = '+ convert (varchar, @imageid) + '" queryout "c:\scans\' + @imagefilename + '"  -T  -N

pdf文件现在打开了,但单词文档仍然是损坏的。 有没有人有任何想法我错了?

1 个答案:

答案 0 :(得分:0)

我知道这是一篇很老的帖子,我对除 PDF 以外的所有文件都有这个问题。

我试过不带 -N 和带。使用格式文件而不是使用格式文件。奇怪的是我以前经常使用我的脚本,有一段时间没有使用它了。在此期间,出现了一些 SQL 更新。不是脚本只导出未损坏的 PDF 文档。

Zip 文件和几乎任何我可以通过修复工具运行的文件,它们都已修复。但由于数量的原因,这不是一个可行的选择。

format file

加上我的格式文件有一个 4 而不是 0。仅此一项就使除 PDF 文档之外的所有文件都因标题损坏而损坏。