node+sqlserver在做批量导入的时候出现 Invalid column type from bcp client for colid 错误大致如下:
RequestError: Invalid column type from bcp client for colid 1.
at handleError (D:\liangliwen\LittleSun\LittleSunApi\node_modules\mssql\lib\tedious\request.js:233:15)
at Connection.emit (events.js:400:28)
at Parser.<anonymous> (D:\liangliwen\LittleSun\LittleSunApi\node_modules\tedious\lib\connection.js:832:12)
at Parser.emit (events.js:400:28)
at Parser.<anonymous> (D:\liangliwen\LittleSun\LittleSunApi\node_modules\tedious\lib\token\token-stream-parser.js:37:14)
at Parser.emit (events.js:400:28)
at addChunk (D:\liangliwen\LittleSun\LittleSunApi\node_modules\tedious\node_modules\readable-stream\lib\_stream_readable.js:298:12)
at readableAddChunk (D:\liangliwen\LittleSun\LittleSunApi\node_modules\tedious\node_modules\readable-stream\lib\_stream_readable.js:280:11)
at Parser.Readable.push (D:\liangliwen\LittleSun\LittleSunApi\node_modules\tedious\node_modules\readable-stream\lib\_stream_readable.js:241:10)
at Parser.Transform.push (D:\liangliwen\LittleSun\LittleSunApi\node_modules\tedious\node_modules\readable-stream\lib\_stream_transform.js:139:32) {
code: 'EREQUEST',
originalError: Error: Invalid column type from bcp client for colid 1.
at handleError (D:\liangliwen\LittleSun\LittleSunApi\node_modules\mssql\lib\tedious\request.js:231:19)
at Connection.emit (events.js:400:28)
at Parser.<anonymous> (D:\liangliwen\LittleSun\LittleSunApi\node_modules\tedious\lib\connection.js:832:12)
at Parser.emit (events.js:400:28)
at Parser.<anonymous> (D:\liangliwen\LittleSun\LittleSunApi\node_modules\tedious\lib\token\token-stream-parser.js:37:14)
at Parser.emit (events.js:400:28)
at addChunk (D:\liangliwen\LittleSun\LittleSunApi\node_modules\tedious\node_modules\readable-stream\lib\_stream_readable.js:298:12)
at readableAddChunk (D:\liangliwen\LittleSun\LittleSunApi\node_modules\tedious\node_modules\readable-stream\lib\_stream_readable.js:280:11)
at Parser.Readable.push (D:\liangliwen\LittleSun\LittleSunApi\node_modules\tedious\node_modules\readable-stream\lib\_stream_readable.js:241:10)
at Parser.Transform.push (D:\liangliwen\LittleSun\LittleSunApi\node_modules\tedious\node_modules\readable-stream\lib\_stream_transform.js:139:32)
{
info: ErrorMessageToken {
name: 'ERROR',
event: 'errorMessage',
number: 4816,
state: 1,
class: 16,
message: 'Invalid column type from bcp client for colid 1.',
serverName: 'DESKTOP-L4SSJD0',
procName: '',
lineNumber: 1
}
},
number: 4816,
lineNumber: 1,
state: 1,
class: 16,
serverName: 'DESKTOP-L4SSJD0',
procName: '',
precedingErrors: []
}
主要问题在于,你导入的表里存在 nvarchar(MAX) 这样的类型,所以需要你在table里指定 如:
table.columns.add("code", db.sqlserver.NVarChar('MAX'), { nullable: true });
nullable(是否空值)也很关键,应该和你数据库里的相同。