Michael Hedgpeth Asked: 2011-06-03 14:32:47 +0800 CST2011-06-03 14:32:47 +0800 CST 2011-06-03 14:32:47 +0800 CST 如何通过批量导入导入 varbinary(max) 列? 772 我有一个需要批量导入的 varbinary(max) 列。我放入此列的数据是 C# 中的 byte[]。如何格式化用于批量导入的逗号分隔文件中的数据?换句话说,如何以 bcp 实用程序接受的方式从 byte[] 转换为字符串? sql-server bcp 3 个回答 Voted Best Answer gbn 2011-06-03T20:35:31+08:002011-06-03T20:35:31+08:00 varbinary 值采用0x01020304SQL Server 读取的形式。 所以你的 CSV 将是 col1,col2,varbinary foo,1,0x01020304 bar,2,0x988776655443 2013 年 5 月编辑, 经过测试,无论有没有格式文件,我都无法让它与 BULK INSERT 一起使用。 当我开始工作时,我会发布更多内容。我无法删除此答案 StanleyJohns 2011-06-07T05:09:58+08:002011-06-07T05:09:58+08:00 您可以使用 BCP unicode 本机格式进行导入/导出。用于bcp -n导出和WITH (DATAFILETYPE='widenative')子句用于导入。点击链接阅读更多。 Alexander Titov 2015-08-04T23:22:35+08:002015-08-04T23:22:35+08:00 我让它工作。您的 varbinary 数据必须采用424C4F4220434F4E54454E54csv 文件的形式。您还必须指定 csv 文件的正确代码页。 我有下表: CREATE TABLE [dbo].[BlobTable]( [id] [int], [blobValue] [varbinary](max), [textValue] [nvarchar](500) ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] 和批量导入查询: bulk insert dbo.BlobTable from 'C:\importBlob.csv' with (DATAFILETYPE = 'char', fieldterminator=',', codepage='1251') 它适用于具有 windows-1251 编码的 csv 文件: 1,424C4F4220434F4E54454E54,english text 2,424C4F4220434F4E54454E54,русский текст 这里的值424C4F4220434F4E54454E54只是BLOB CONTENT二进制形式。
varbinary 值采用
0x01020304
SQL Server 读取的形式。所以你的 CSV 将是
2013 年 5 月编辑,
经过测试,无论有没有格式文件,我都无法让它与 BULK INSERT 一起使用。
当我开始工作时,我会发布更多内容。我无法删除此答案
您可以使用 BCP unicode 本机格式进行导入/导出。用于
bcp -n
导出和WITH (DATAFILETYPE='widenative')
子句用于导入。点击链接阅读更多。我让它工作。您的 varbinary 数据必须采用
424C4F4220434F4E54454E54
csv 文件的形式。您还必须指定 csv 文件的正确代码页。我有下表:
和批量导入查询:
它适用于具有 windows-1251 编码的 csv 文件:
这里的值
424C4F4220434F4E54454E54
只是BLOB CONTENT
二进制形式。