MSSQL JdbcTemplate 프로시저 실행시 xx 문에서 결과 집합을 반환하지 않았습니다. 오류 원인
JdbcTemplate을 사용하여 프로시저를 실행했고 프로시저는 실행 결과를 출력하도록 되어 있었습니다. DBMS는 MSSQL Server입니다. 그런데 다음과 같은 오류가 발생합니다.
org.springframework.jdbc.UncategorizedSQLException...
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 문에서 결과 집합을 반환하지 않았습니다.

분명 SQL 클라이언트로 직접 프로시저를 실행하면 결과 테이블이 반환되는데, JdbcTemplate을 통해 실행하면 위와 같은 오류가 발생합니다.

이럴때에는 SQL 구문 앞에 다음과 같이 SET NOCOUNT ON; 을 붙여 실행하면 됩니다.
String sql = "SET NOCOUNT ON; EXEC MYPROC...";
Map<String, Object> resultMap = erpJdbcTemplate.queryForMap(sql,  params);

블로그 이미지

도로락

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그

,