在 sql2000 中使用 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:scansattached.fmt

但是,当我运行查询时,它会创建所有文件,但它们无法在单词或杂技中打开。 两者都报告文件已损坏。相反,如果我运行命令

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

pdf文件现在可以正常打开,但word文档仍然损坏。有人知道我哪里出错了吗?

我知道

这是一个非常古老的帖子,除了 PDF 之外,我的所有文件都遇到了这个问题。

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

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

格式化文件

另外,我的格式化文件有 4 而不是 0。仅此一项就使除PDF文档以外的所有文件都因标题损坏而损坏。

相关内容

  • 没有找到相关文章

最新更新