728x90
SMALL
진짜 떄려주고싶었던 오류...
구글에 쳐봐도
선배님들은 대답이 없었고..
나는 눈물을 뚝뚝흘리며 오류를 고쳐나갔다...
INSERT INTO t_record_amt_life_mrs(
sts_wst_type
,tot_amt
,pp_rcy
,pp_inc
,pp_lnd
,pp_etc
,sp_rcy
,sp_inc
,sp_lnd
,sp_etc
,sp_sea
,sp_exp
,cs_rcy
,cs_inc
,cs_lnd
,cs_etc
,cs_sea
,sts_wst_type_cd
,fclt_sn
,fclt_nm
,sgg
,fclt_year
,fclt_mth
) VALUES
<foreach collection="data" item="data" separator=",">
(
#{data.rcy_cd}
/* choose*/
<choose>
<when test="data.pp_rcy gt 0">,#{data.pp_rcy}::numeric(9,2)</when>
<when test="data.pp_inc gt 0">,#{data.pp_inc}::numeric(9,2)</when>
<when test="data.pp_lnd gt 0">,#{data.pp_lnd}::numeric(9,2)</when>
<when test="data.pp_etc gt 0">,#{data.pp_etc}::numeric(9,2)</when>
<when test="data.sp_rcy gt 0">,#{data.sp_rcy}::numeric(9,2)</when>
<when test="data.sp_inc gt 0">,#{data.sp_inc}::numeric(9,2)</when>
<when test="data.sp_lnd gt 0">,#{data.sp_lnd}::numeric(9,2)</when>
<when test="data.sp_etc gt 0">,#{data.sp_etc}::numeric(9,2)</when>
<when test="data.sp_sea gt 0">,#{data.sp_sea}::numeric(9,2)</when>
<when test="data.sp_exp gt 0">,#{data.sp_exp}::numeric(9,2)</when>
<when test="data.cs_rcy gt 0">,#{data.cs_rcy}::numeric(9,2)</when>
<when test="data.cs_inc gt 0">,#{data.cs_inc}::numeric(9,2)</when>
<when test="data.cs_lnd gt 0">,#{data.cs_lnd}::numeric(9,2)</when>
<when test="data.cs_etc gt 0">,#{data.cs_etc}::numeric(9,2)</when>
<when test="data.cs_sea gt 0">,#{data.cs_sea}::numeric(9,2)</when>
</choose>
/* choose*/
, #{data.pp_rcy}::numeric(9,2)
, #{data.pp_inc}::numeric(9,2)
, #{data.pp_lnd}::numeric(9,2)
, #{data.pp_etc}::numeric(9,2)
, #{data.sp_rcy}::numeric(9,2)
, #{data.sp_inc}::numeric(9,2)
, #{data.sp_lnd}::numeric(9,2)
, #{data.sp_etc}::numeric(9,2)
, #{data.sp_sea}::numeric(9,2)
, #{data.sp_exp}::numeric(9,2)
, #{data.cs_rcy}::numeric(9,2)
, #{data.cs_inc}::numeric(9,2)
, #{data.cs_lnd}::numeric(9,2)
, #{data.cs_etc}::numeric(9,2)
, #{data.cs_sea}::numeric(9,2)
, #{data.sts_wst_type_cd}
<foreach collection="info" item="info" separator=",">
, #{info.fclt_sn}::int
, #{info.fclt_nm}
, #{info.sgg}
, #{info.fclt_year}
, #{info.fclt_mth}
)
</foreach>
</foreach>
이런 뭐 길고도 긴 쿼리문을 짰었는데 (나에겐 이게 한계였다...)
foreach구문을 쓰면서 value들이 n개씩 저장이 되었는데 그 value들의 값의 길이가 똑같아야 한다는 것이다
대충 머리로는 이해했는데 어디에서 뻑나는지를 못찾았다
컬럼들이 워낙 많아서 (나한테는 많은겁니다....) 메모장에 일일이 붙혀보고 주석달면서 찾아냄;;
chosse문 안에서 저 조건문들의 이외의 값이 안들어가서 길이가 안맞았던것,,,
그러니,,, 그냥
<otherwise>,0</otherwise>
하나만 추가해주니 완...
저것도 <otherwise>0</otherwise> 처음엔 이렇게 써서 당연히 오류가 났었고 ㅋㅋㅋㅋㅋ
생각하자 생각!!!!!!
728x90
LIST
댓글