SqlBulkCopy 예외, colid 찾기

sql sqlbulkcopy

문제

SqlBulkCopy를 사용하고이 예외를 얻는 방법 :

colid 30에 대해 bcp 클라이언트에서 잘못된 열 길이를 받았습니다.

나는이 머리에 대해 몇 시간 동안 머리를 치고 있었다. 어떤 행에 문제가 있는지 알지만 어떤 열 "colid 30"인지 알 수 없습니다. 데이터 표에는 178 개의 열이 있습니다. 모든 값은 정확하고 내 데이터베이스의 모든 열 데이터 형식보다 더 길지는 않습니다.

이 데이터베이스는 부동산 목록을 보유하고 있으며 현재 3 백만 건이 넘는 기록을 보유하고 있습니다.

colid 30이 무엇인지 정확히 찾아내는 방법이 있습니까? 또는 bcp가 데이터베이스에 제출하는 실제 SQL을 보는 방법이 있습니까?

수락 된 답변

이 도움이 다른 사람의 문제도 해결하는 데 도움이되기를 바랍니다.

오류는 데이터 테이블의 문자열 / varchar 필드 중 하나에 세미콜론 ";" 가치 있음. 분명히 삽입을하기 전에 수동으로 이스케이프해야합니다!

모든 행 / 열을 통해 루프를 수행하고 않았다 :

string.Replace(";", "CHAR(59)");

그 후, 모든 것이 부드럽게 삽입되었습니다.


인기 답변

대량 삽입을 수행중인 테이블의 열 크기를 확인하십시오. varchar 또는 다른 문자열 열을 확장해야 할 수도 있습니다.

예 : 크기를 30에서 50으로 늘림 =>

ALTER TABLE [dbo].[TableName]
ALTER COLUMN [ColumnName] Varchar(50)


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.