我有一个var二进制(Max)列,需要批量导入。我要在本专栏中输入的数据是byte[] in C#。如何格式化用于批量导入的逗号分隔文件中的数据?换句话说,如何以bcp实用程序将接受的方式从byte[]转换为字符串?
发布于 2011-06-03 04:35:31
varbinary的形式是0x01020304,以便Server读取。
所以你的CSV会是
col1,col2,varbinary
foo,1,0x01020304
bar,2,0x9887766554432013年5月编辑,
经过测试后,我无法让它与大容量插入或没有格式文件一起工作。
当我开始工作的时候,我会发布更多的东西。我不能删除这个答案
发布于 2011-06-06 13:09:58
您可以使用BCP unicode本机格式导入/导出。导出使用bcp -n,导入使用WITH (DATAFILETYPE='widenative')子句。单击链接阅读更多信息。
发布于 2015-08-04 07:22:35
我让它开始工作了。您的varbinary必须是csv文件中的表单424C4F4220434F4E54454E54。您还必须指定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。
https://dba.stackexchange.com/questions/3138
复制相似问题