sql-server - 如何使用 BCP 或 Sql Server Management Studio 从 Sql Server 中获取 BLOB 数据?

标签 sql-server sql-server-2005 tsql blob bcp

如果这个问题已经被问过,我很抱歉,但我在任何地方都找不到它。我有一个将文件存储为 BLOBS 的表。保存文件的列是图像数据类型。我希望能够从列中提取二进制数据并将其转换为实际文件。如果可能的话,我希望能够通过 BCP 或管理工作室来完成此任务。

我尝试过 BCP,但由于某种原因,当我尝试取出 Office 文档时,Word 认为它已损坏。这是我到目前为止所尝试过的(显然,为了保护无辜者,这些值已被更改:):

bcp "select document_binary_data from database where id = 12345" queryout "c:\filename.doc" -n -S server -U username -P password

这不起作用?有什么想法吗?

编辑 事实证明您不需要 -n native 标志。此外,BCP 默认情况下会尝试在图像列上包含 4 字节前缀 - 您实际上希望将其设置为 0。

bcp "select document_binary_data from database where id = 12345" queryout "c:\filename.doc" -S server -U username -P password
Enter the file storage type of field document_binary [image]:
Enter prefix-length of field document_binary [4]: 0
Enter length of field document_binary [0]:
Enter field terminator [none]:

最佳答案

我正在回答我自己的问题,因为我对告诉我设置赏金感到恼火

事实证明您不需要 -n native 标志。此外,BCP 默认情况下会尝试在图像列上包含 4 字节前缀 - 您实际上希望将其设置为 0。

bcp "select document_binary_data from database where id = 12345" queryout "c:\filename.doc" -S server -U username -P password
Enter the file storage type of field document_binary [image]:
Enter prefix-length of field document_binary [4]: 0
Enter length of field document_binary [0]:
Enter field terminator [none]:

关于sql-server - 如何使用 BCP 或 Sql Server Management Studio 从 Sql Server 中获取 BLOB 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2404709/

相关文章:

sql-server - 为什么 [PrtSc] 按钮在 Intellij-Idea 或 Microsoft SQL Server Management Studio 中不起作用?

mysql - 如何删除外键字段?

sql - 使用SELECT执行INSERT以插入多个记录

sql - 在 SQL 中插入值的最佳方法

sql - 将空值排序在最后而不是最前面

sql-server - SELECT 语句中的 SQL WHERE 语句

sql-server-2005 - 优化加密列搜索

sql-server - 如何在连接两个表时更新 Sql Server 表列?

sql-server - SQL Server - 给定周数,获取一周中的第一个日期?

SQL Server 2005 - WHERE 子句 - 使用 IF 或 CASE 或 BOOLEAN?