我正在运行SQL Server 2005 Express。我正在尝试使用十六进制值0x001的字段/行终止符批量插入/导入数据文件。我应该如何在批量插入命令中表示它?
我有类似的东西:
bulk insert xxx.dbo.[yyy]
from 'D:\zzz\zzz.dat'
with (
CODEPAGE='RAW',
FIELDTERMINATOR = '=|=',
ROWTERMINATOR = '=|=\001\n',
KEEPNULLS
);
导致
Msg 4863, Level 16, State 1, Line 7
Bulk load data conversion error (truncation) for row 1, column 3 (code).
第3列是最后一列。从字符串中删除十六进制值可以在SQL Server中正确加载,但是,我想知道是否可以在终结符中表示/使用十六进制值。
答案 0 :(得分:0)
ROWTERMINATOR = '=|=01\n'
这假定文件看起来像这样,带有实际的字符串“01”
foo=/=bar=/=bob=/=01
否则,如果它是文字字符(1),则不能:Specifying Field and Row Terminators
答案 1 :(得分:0)
不,不是。它是一个实际的十六进制值0x001。答案是使用十六进制到字符串转换器来获取文字字符,并使用字符串中的文字滑稽字符到ROWTERMINATOR。