2011-07-06 3 views
2

Java 응용 프로그램에서 BCP를 실행할 때 1이 예상되면 상태 코드 0으로 종료됩니다. I 데이터 및 서식 파일 및 BCP의 잘못된 조합으로 BCP를 실행 다음과 같은 오류를 제공합니다 : 내가 의심으로BCP가 코드 0으로 종료합니다.

Starting copy... 
SQLState = 22005, NativeError = 0 
Error = [Microsoft][SQL Server Native Client 10.0]Invalid character value for cast specification 

BCP copy in failed 

BCP는하지만, 종료 코드 0이 아니라 1로 종료됩니다. 이제는 BCP를 실행하는 동안 실패했는지 확인하는 것이 매우 어렵습니다. 올바른 코드로 빠져 나오면 어느 정도 일치합니다 (같은 구분 기호와 같습니다).

명령

PS C:\Users\feh\Desktop> bcp integrate_test.dbo.AS_LOADER_DELIMITED in .\data.dat -S "10.0.0.161\SQL2K5,1048" -U user -P pass -f .\formatting.ctl -m 1 

Starting copy... 
SQLState = S1000, NativeError = 0 
Error = [Microsoft][SQL Server Native Client 10.0]Unexpected EOF encountered in BCP data-file 

0 rows copied. 
Network packet size (bytes): 4096 
Clock Time (ms.) Total  : 1 
PS C:\Users\feh\Desktop> $lastexitcode 
0 

어떻게 데이터에 서식 파일을 확인하고 일치하지 않는 경우 종료 코드 1을 얻을 수 있나요?

답변

0

bcp가 "in"이면 BULK INSERT을 사용하십시오. 이것은 bcp와 동일하지만 SQL Server TRY/CATCH 또는 일반 예외 처리를 사용하여 트랩 할 수 있습니다.

그렇지 않으면 %ERRORLEVEL%을 트래핑하고 다른 코드를 포착하지 않습니까?

+0

나는 $ lastexitcode의 결과로 호출 한 명령을 추가했습니다. – ferdyh

관련 문제