嗨,我有一个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文档以外的所有文件都因标题损坏而损坏。