2014-04-02 3 views
0

Sql Server으로 삽입하려면 Spring Jdbc을 사용하고 있습니다. 그러나 최근에는 10 자릿수 이상의 큰 더블이 있습니다 (11123456789.00). 1.1123456789E10이 포맷없이 출력됩니다. 여기Java에서 SQL Server에 매개 변수로 큰 double을 전달하여 "데이터 유형 varchar를 숫자로 변환하는 중 오류가 발생했습니다."

내가 SQL 서버에 전달하는 방법입니다

double largeDouble = 11123456789.00; 
MapSqlParameterSource paraMap = new MapSqlParameterSource() 
paraMap.addValue("largeDouble", largeDouble); 

SimpleJdbcCall simpleJdbcCall = new SimpleJdbcCall(getJdbcTemplate()); 
simpleJdbcCall.withProcedureName("someStoredProcedure").execute(paraMap); 

는 SQL Server의 largeDouble 필드의 데이터 유형은 decimal(19,2)입니다.

그리고이 오류는 "데이터 유형 varchar를 숫자로 변환하는 중 오류가 발생했습니다."를 보여줍니다. 프로그램을 실행 한 후

이 상황이 발생하는 이유와 해결 방법이 궁금합니다.

+0

데이터베이스 테이블 구조는 무엇입니까? 저장 프로 시저의 본문도 제공하십시오. –

답변

0

음 큰 Double의 xml 매개 변수 인 프로그램을 찾을 수 있습니다. xml에서는 과학 표기법이있는 숫자가되고 열의 숫자 유형을 위반합니다.

0

추가 매개 변수를 사용하여 다른 방법을 시도하여 SQL 형식을 지정하십시오.

paraMap.addValue("largeDouble", largeDouble, Types.LONG); 
+0

'java.sql.Types'을 의미합니까? 그것은 왜 'Types.DOUBLE'이 아닌가? – DerekY

관련 문제