Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server 2005大容量插入二进制类型_Sql Server_Sql Server 2005_Bulkinsert - Fatal编程技术网

Sql server SQL Server 2005大容量插入二进制类型

Sql server SQL Server 2005大容量插入二进制类型,sql-server,sql-server-2005,bulkinsert,Sql Server,Sql Server 2005,Bulkinsert,我有以下格式的表格: smallint, binary(10), smallint, smallint, varbinary(max) smallint,二进制(10),smallint,smallint,varbinary(最大值) 我还有一个csv文件,由我们的一个进程从表中的数据生成,其中二进制数据作为十六进制数据导出。 我尝试在语句中生成INSERT,但速度非常慢。 我厌倦了大容量插入,但它失败了,我怀疑这是因为二进制数据 有人知道如何使用大容量插入(或类似的东西)来插入包含二进制数据的

我有以下格式的表格:

smallint, binary(10), smallint, smallint, varbinary(max) smallint,二进制(10),smallint,smallint,varbinary(最大值) 我还有一个csv文件,由我们的一个进程从表中的数据生成,其中二进制数据作为十六进制数据导出。
我尝试在语句中生成INSERT,但速度非常慢。
我厌倦了大容量插入,但它失败了,我怀疑这是因为二进制数据

有人知道如何使用大容量插入(或类似的东西)来插入包含二进制数据的大量数据吗

数据示例如下:

1,0x00000000000000000BB8,0,142,0x434F4E534E554D424552202020202020040006000600202000000000202000000000000000008000422020202020202020202020202020202020000000000000000000000000000000000000202000000020000000000000000000000000000000000000000000000000000000000200020000000000000004000000E09304006B8016000600FFFFFFFF0B00010007004633303030002E81FFFF1C00FFFFFFFF04001E00 1,0x00000000000000000BB8,0142,0x434F4E534E554D42552202020020400060006000020000000000202000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FF04001E00
谢谢。

我打赌问题在于0x434F4E。。。被视为要插入的实际字节(0x307834334463445),而不是十六进制扩展。('0'=0x30,'x'=0x78,'4'=0x34等等)将发生截断,因为十六进制的每个值有两个字符,所以它试图插入一个长度为所需长度两倍的字符串

如果您查看了大容量插入的选项,但没有找到告诉它将十六进制解释为二进制的方法,我建议使用SSIS。我没有从SSI批量加载二进制值的实际经验,但毫无疑问,它可以做到这一点,而且速度会很快


我想总是有可能输出二进制值的实际字节,而不是它们的十六进制表示形式,但是如果使用分隔符,就会遇到问题,因为分隔符可能是二进制值中的字节之一。这正是混合文本和二进制数据的问题。您可以通过使用固定长度的列导入来实现这一点,该导入具有定义列及其数据类型的大容量插入的特殊扩展语法。

使用大容量插入时,数据文件和从BCP生成的格式文件工作正常。这对我来说已经足够好了。谢谢所有帮助我的人。