티스토리 뷰

반응형


/*홈텍스
에서 다운받은 pdf xml로 변환하여 table parsing하는 sql*/
<?xml version="1.0" encoding="utf-8" ?>
<yesone>
   <doc>
   <doc_type>A</doc_type>
   <seq>2012100410196214</seq>
   <att_year>2012</att_year>
</doc>
 
                    :
                    중략
                    :
 
<form form_cd="L101Y">
   <man resid="7001011234567" name="홍길동">
      <data dat_cd="L01" busnid="1128206550" trade_nm="국제백신연구소(International Vaccine Institute(해피빈재단)" donation_cd="40">
         <sum>500000</sum>
      </data>
      <data dat_cd="L01" busnid="1318201425" trade_nm="용현2,5동새마을금고(열매)" donation_cd="10">
         <sum>500000</sum>
      </data>
      <data dat_cd="L01" busnid="2038200639" trade_nm="대한적십자사" donation_cd="10">
         <sum>10000</sum>
      </data>
      <data dat_cd="L01" busnid="7770800001" trade_nm="대한민국사회복지단체" donation_cd="10">
         <sum>150000</sum>
      </data>
      <data dat_cd="L01" busnid="7770800002" trade_nm="우리나라선거관리위원회" donation_cd="20">
         <sum>200000</sum>
      </data>
      <data dat_cd="L01" busnid="7770800003" trade_nm="가나다라적십자사" donation_cd="30">
         <sum>100000</sum>
      </data>
      <data dat_cd="L01" busnid="7770800004" trade_nm="코리아후원사" donation_cd="40">
         <sum>100000</sum>
      </data>
   </man>
      <man resid="3801011234567" name="홍부친">
      <data dat_cd="L01" busnid="2038212345" trade_nm="대한적십자사" donation_cd="10">
         <sum>10000</sum>
      </data>
   </man>
   <man resid="4001012234567" name="김모친">
      <data dat_cd="L01" busnid="2038212345" trade_nm="대한적십자사" donation_cd="10">
         <sum>1000000</sum>
      </data>
   </man>  
</form>
                    :
                    중략
                    :
</yesone>
 


--기부금 연간합계(L101Y)

WITH tb AS (
   SELECT 
        EXTRACTVALUE ( VALUE ( p ), '/man/@resid' ) man_resid
      , EXTRACTVALUE ( VALUE ( p ), '/man/@name' ) man_name
      , EXTRACT ( VALUE ( p ), '/man/data' ) man_data
     FROM 
       TABLE ( XMLSEQUENCE ( EXTRACT ( xmltype ( xml소스문자열 ), '/yesone/form[@form_cd="L101Y"]/man' ) ) ) p
)
SELECT 
       tb.man_resid
     , tb.man_name
     , EXTRACTVALUE ( td.COLUMN_VALUE, '/data/@busnid' ) busnid
     , EXTRACTVALUE ( td.COLUMN_VALUE, '/data/@trade_nm' ) trade_nm
     , EXTRACTVALUE ( td.COLUMN_VALUE, '/data/@donation_cd' ) donation_cd
     , EXTRACTVALUE ( td.COLUMN_VALUE, '/data/sum' ) SUM
  FROM tb CROSS JOIN TABLE ( XMLSEQUENCE ( EXTRACT ( tb.man_data, '/data' ) ) ) td



연말정산 시즌이 도래했다. 작년에 사내 프로젝트로 연말정산 자동화를 만들어 볼때 참고했던 쿼리가 생각이 났다.

이번 연말정산도 환급많이 받아야 할텐데. 

다들 많이 챙겨 가시오.



반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
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 29 30
글 보관함