작콩큰콩

[오류] com.microsoft.sqlserver.jdbc.SQLServerException: The incoming request has too many parameters. The server supports a maximum of 2100 parameters. Reduce the number of parameters and resend the request. 본문

작은 콩 개발자/오류

[오류] com.microsoft.sqlserver.jdbc.SQLServerException: The incoming request has too many parameters. The server supports a maximum of 2100 parameters. Reduce the number of parameters and resend the request.

귤치치 2024. 5. 20. 12:03
오류 내용
[2024-05-14 16:07:40.135] ERROR [spring.config.MybatisSqlLog error()] : 함수명: error / 파일: Function.java / 패키지: common.config.Function / 라인: 3351
- 에러사유:
com.microsoft.sqlserver.jdbc.SQLServerException: The incoming request has too many parameters. 
The server supports a maximum of 2100 parameters. 
Reduce the number of parameters and resend the request.

 

오류 부분
  • 오류 난 쿼리
    • 엄청나게 컬럼이 많았고 엑셀로 50개를 등록하는 과정에서 오류가 났다.
	<insert id="insertTaskFile" parameterType="java.util.List">
		BEGIN
			<foreach item="data" collection="list" separator=";">
				INSERT INTO SYS_TASK_FILE (
					TASK_TYPE
					,TASK_SEQ
					,FILE_SEQ
					,PROJ_SEQ
					,DOC_FILE_TYPE_CD
					,VALID_STATUS_CD
					,EXT_TYPE
					,SHEET
					,SAFETY
					,FBS
					,FBS_BIZ_CD_SEQ
					,PBS
					,PBS_BIZ_CD_SEQ
					,OBS
					,OBS_BIZ_CD_SEQ
					,ORG_SEQ
					,TASK_BIZ_CD_SEQ
					,REV_REMARK
					,PAGE
					,SUPPLIER_DOC
					,REVIEW_STATUS
					,REVIEW_YN
					,DOC_GROUP
					,ISSUE_DT
					,ISSUE_PURPOSE
					,DOC_GRADE
					,AE_TRANS_NO
					,RESP_DIV
					,SUPER_VOID_ACTIVE
					,AREA_CODE
					,FILE_DWG_SIZE
					,SORT
					,REG_USER_SEQ
					,REG_DT
					,QTY
					,TYPE
					,SDRN
					,SDDF
					,ACTIVITY_CODE
					,SYSTEM_CODE
					,AREA_BUILDING
					,CP_NO
					,VOID_SUPERSEDE
					,ADD_END_NUM_NO
					,FILE_COUNT
					,NSSS_TG
					,SUPP_DATA_KIND
					,SUPP_DOC_NO
					,EQUIP_NO
					,COMP_CD
					,CATG_CD
					,DISCIPLINE
					,PART
					,QA_RECORD
					,LANGUAGE
					,CONSERVATION_LIMIT
					,VERIFY_ID
					,VERIFY_NAME
					,VERIFY_DATE
					,ISSUE_SEQ_NO
					,PO_NO
					,PHASE
					,ORIG_FILE_SEQ
				) VALUES (
					#{data.taskType}
					,#{data.taskSeq}
					,#{data.fileSeq}
					,#{data.projSeq}
					,#{data.docFileTypeCd}
					,#{data.validStatusCd}
					,#{data.extType}
					,#{data.sheet}
					,#{data.safety}
					,#{data.fbs}
					,#{data.fbsBizCdSeq}
					,#{data.pbs}
					,#{data.pbsBizCdSeq}
					,#{data.obs}
					,#{data.obsBizCdSeq}
					,#{data.orgSeq}
					,#{data.taskBizCdSeq}
					,#{data.revRemark}
					,#{data.page}
					,#{data.supplierDoc}
					,#{data.reviewStatus}
					,#{data.reviewYn}
					,#{data.docGroup}
					,#{data.issueDt}
					,#{data.issuePurpose}
					,#{data.docGrade}
					,#{data.aeTransNo}
					,#{data.respDiv}
					,#{data.superVoidActive}
					,#{data.areaCode}
					,#{data.fileDwgSize}
					,#{data.sort}
					,#{data.regUserSeq}
					,GETDATE()
					,#{data.qty}
					,#{data.type}
					,#{data.sdrn}
					,#{data.sddf}
					,#{data.activityCode}
					,#{data.systemCode}
					,#{data.areaBuilding}
					,#{data.cpNo}
					,#{data.voidSupersede}
					,#{data.addEndNumNo}
					,#{data.fileCount}
					,#{data.nsssTg}
					,#{data.suppDataKind}
					,#{data.suppDocNo}
					,#{data.equipNo}
					,#{data.compCd}
					,#{data.catgCd}
					,#{data.discipline}
					,#{data.part}
					,#{data.qaRecord}
					,#{data.language}
					,#{data.conservationLimit}
					,#{data.verifyId}
					,#{data.verifyName}
					,#{data.verifyDate}
					,#{data.issueSeqNo}
					,#{data.poNo}
					,#{data.phase}
					,#{data.origFileSeq}
					)
			</foreach>
		END;
	</insert>

 

오류 결론

쿼리가 너무 길어서 생긴 문제이다.  그래서 쿼리를 분산해서 실행하도록 하였다.

Comments