Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- angular button
- mysql if
- Router
- formgroup
- 모달
- angular route
- 앵귤러 모달
- modal
- route
- 스크롤 이벤트
- angular animation
- Angular Router
- 옵저버블
- 셀렉트박스 커스텀
- Ionic modal
- TAILWIND
- ApexChart
- 앵귤러 애니메이션
- prisma
- 검색
- Oracle LISTAGG 사용 예시
- angular modal
- egov spring ajax 사용 예시
- 아이오닉 스크롤 이벤트
- 호버
- ajax 사용 예시
- scroll
- flex-1
- 스크롤 이벤트 감지
- summary
Archives
- Today
- Total
깜놀하는 해므찌로
CUBRID IBATIS 스케줄러 Merge / CUBRID merge 예시 본문
반응형
SMALL
<resultMap id="iListTest0002.001.ResultSetMapper" class="vo.VO">
<result property="placeId" column="place_id"/>
<result property="msrrId" column="msrr_id"/>
<result property="cmpyNm" column="cmpy_nm"/>
<result property="laVal" column="la_val"/>
<result property="loVal" column="lo_val"/>
<result property="adres" column="adres"/>
<result property="mesureDt" column="mesure_dt"/>
<result property="svcNm" column="svc_nm"/>
<result property="nabBeginFqncVal" column="nab_begin_fqnc_val"/>
<result property="nabEndFqncVal" column="nab_end_fqnc_val"/>
<result property="nabMxmmVal" column="nab_mxmm_val"/>
<result property="chargerNm" column="charger_nm"/>
<result property="nabMummVal" column="nab_mumm_val"/>
<result property="levelVal" column="level_val"/>
</resultMap>
<statement id="iListTest0002.001" resultMap="iListTest0002.001.ResultSetMapper" remapResults="true">
<![CDATA[
select *
, case
when D.nab_mumm_val is null or D.ermtw_in_stdr_val is null then '1'
when 50 >= ROUND((D.nab_mumm_val/D.ermtw_in_stdr_val)*100,1) then '1'
when 50 <= ROUND((D.nab_mumm_val/D.ermtw_in_stdr_val)*100,1) and 100 >= ROUND((D.nab_mumm_val/D.ermtw_in_stdr_val)*100,1) then '2'
else '3'
end as LEVEL_VAL
from(
select C.*
,case
when C.begin_val >= 846.00 and C.begin_val <= 869.00
then 40.42
when C.begin_val >= 874.00 and C.begin_val <= 884.00
then 40.65
when C.begin_val >= 884.00 and C.begin_val <= 894.00
then 40.88
when C.begin_val >= 949.30 and C.begin_val <= 959.30
then 42.36
when C.begin_val >= 1810.00 and C.begin_val <= 1830.00
then 58.50
when C.begin_val >= 1830.00 and C.begin_val <= 1860.00
then 58.82
when C.begin_val >= 1940.00 and C.begin_val <= 1950.00
then 60.56
when C.begin_val >= 2110.00 and C.begin_val <= 5825.00
then 61.00
end as ermtwInStdrVal
FROM(
select
A.place_id
, A.mesure_dt
, A.svc_nm
, A.nab_begin_fqnc_val
, A.nab_end_fqnc_val
, A.nab_mxmm_val
, A.nab_mumm_val
, TRUNC(A.nab_begin_fqnc_val/1000000) as begin_val
, TRUNC(A.nab_end_fqnc_val/1000000) as end_val
, B.msrr_id
, B.cmpy_nm
, B.la_val
, B.lo_val
, B.adres
, B.charger_nm
from A A
inner join B B
on A.place_id = B.place_id
where mesure_dt = (select MAX(mesure_dt) from ehmedgm017n)
) C
) D
/* iListTest0002.001 */
]]>
</statement>
<resultMap id="dao.iMerge0002.001.ResultSetMapper" class="dvo.VO"></resultMap>
<statement id="dao.iMerge0002.001" parameterClass="java.util.Map" resultMap="dao.iMerge0002.001.ResultSetMapper">
<![CDATA[
merge into TEST A
using (db_root)
on A.PLACE_ID = #placeId#
and A.MSRR_ID = #msrrId#
and A.SVC_NM = #svcNm#
and A.CMPY_NM = #cmpyNm#
when matched then
update set
A.MESURE_DT = #mesureDt#
, A.NAB_BEGIN_FQNC_VAL = #nabBeginFqncVal#
, A.NAB_END_FQNC_VAL = #nabEndFqncVal#
, A.ERMTW_IN_STDR_VAL = #ermtwInStdrVal#
, A.NAB_MUMM_VAL = #nabMummVal#
, A.LEVEL_VAL = #levelVal#
when not matched then
INSERT(
PLACE_ID
,MSRR_ID
,CMPY_NM
,LA_VAL
,LO_VAL
,ADRES
,CHARGER_NM
,MESURE_DT
,SVC_NM
,NAB_BEGIN_FQNC_VAL
,NAB_END_FQNC_VAL
,NAB_MUMM_VAL
,ERMTW_IN_STDR_VAL
,LEVEL_VAL
)
VALUES(
#placeId#
, #msrrId#
, #cmpyNm#
, #laVal#
, #loVal#
, #adres#
, #chargerNm#
, #mesureDt#
, #svcNm#
, #nabBeginFqncVal#
, #nabEndFqncVal#
, #nabMummVal#
, #ermtwInStdrVal#
, #levelVal#
)
/* dao.iMerge0002.001 */
]]>
</statement>
1. 조회 문
2. 조회한 결과를 다시 merge 하는 Query
3. ermtwInStdrVal : result 속성에 property / column 에 추가하지 않고 바로 mapping 될 수 있도록 as 와 VO 필드 변수를 맞춤 처리
반응형
LIST