반응형
파일이 업로드 된 후 경로 DB 읽어온 후
try {
물리파일 경로 읽은 후 파일 객체 생성
File file = new File(mapData.get("PDF물리절대경로").toString());
해당 파일 객체 byte 배열로 변환
byte[] pdfBytes = Files.readAllBytes(file.toPath());
위변조 검사
/* [Step1] 전자문서 위변조 검증 */
try {
DSTSPDFSig dstspdfSig = new DSTSPDFSig();
dstspdfSig.init(pdfBytes);
dstspdfSig.tokenParse();
isSuccess = dstspdfSig.tokenVerify();
if( isSuccess) {
//System.out.println("Step1] 전자문서 위변조 검증 완료");
}else {
String msg = dstspdfSig.getTstVerifyFailInfo();
logger.debug("[Step1] 전자문서 위변조 검증 실패 " + msg);
}
}catch (DVException e) {
logger.debug("에러 코드 " + e.getLastError());
logger.debug("에러 메시지 " +e.getMessage());
}
/* [Step2] XML(or SAM) 데이터 추출 */
try {
if (isSuccess) {
ExportCustomFile pdf = new ExportCustomFile();
// 데이터 추출
byte[] buf = pdf.NTS_GetFileBufEx(pdfBytes, p_pwd, key, false );
int v_ret = pdf.NTS_GetLastError();
if (v_ret == 1) {
String strXml = new String( buf, "UTF-8" );
mapData.put("XML", strXml);
mapData.put("로그인아이디", 'ADMIN');
int rtn = -1;
//연말정산 추출 데이터 프로시저 전달
rtn = ajdSetupRepository.insertCALLAdjTab3(mapData);
/* mybatis procedure 참고
<select id="insertCALLAdjTab3" statementType="CALLABLE" parameterType="map">
{
CALL PHC6_XMLTODATA_ALL
(
#{GRP_FILE_ID,jdbcType=VARCHAR,mode=IN},
#{FILE_ID,jdbcType=VARCHAR,mode=IN},
#{XML,jdbcType=CLOB,mode=IN},
#{S_USER_ID,jdbcType=VARCHAR,mode=IN}
)
}
</select>
*/
if(rtn > -1) {
logger.debug("INSERT 성공");
} else if (v_ret == 0) {
logger.debug("연말정산간소화 표준 전자문서가 아닙니다.");
} else if (v_ret == -1) {
logger.debug("비밀번호가 틀립니다.");
} else if (v_ret == -2) {
logger.debug("PDF문서가 아니거나 손상된 문서입니다.");
} else {
logger.debug("데이터 추출에 실패하였습니다.");
}
}
} catch (Exception e) {
logger.debug("[Step2] 데이터 추출 실패(" + e.toString() + ")");
}
} catch (final IOException e) {
System.out.println("파일 "+e);
}
프로시저 참고
CREATE OR REPLACE PROCEDURE BRE.PHC6_XMLTODATA_ALL (in_sjsnyeondo IN VARCHAR2, --그룹아이디
in_sjmdrbeonho IN VARCHAR2, --파일 아이디
in_xmldata IN CLOB, --xmldata
in_sjakeopja IN VARCHAR2) --작업자
IS
-------------------------------------------------------------
SPROGRAMID VARCHAR2(60) := 'PHC6_XMLTO_ALL';
SCRDAESANG VARCHAR2(60) := '국세청 전자문서PDF_XML을 데이터베이스 자료로 변환';
SJSGUBUN VARCHAR2(1) := NULL;
LCGEONSU NUMBER(7, 0) := 0;
LBRGEONSU NUMBER(7, 0) := 0;
LCRGEONSU NUMBER(7, 0) := 0;
SFLAG CHAR(1) := '0';
SXMLDATA CLOB;
-------------------------------------------------------------
/******************************************************************************
NAME: PHC6_XMLTO_ALL
PURPOSE:
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2016-01-07 operoninc 1. Created this procedure.
NOTES:
Automatically available Auto Replace Keywords:
Object Name: PHC6_XMLTO_ALL
Sysdate: 2016-01-07
Date and Time: 2016-01-07, 오후 4:09:18, and 2016-01-07 오후 4:09:18
Username: operoninc (set in TOAD Options, Procedure Editor)
Table Name: (set in the "New PL/SQL Object" dialog)
-- 연말정산 국세청 전자문서PDF_XML을 보험료 자료로 변환
-- in_sjsnyeondo : 정산년도
-- in_sjmdrbeonho: 사원번호/주민번호
-- in_xmldata : XML자료
-- in_sjakeopja : 작업자
******************************************************************************/
BEGIN
SXMLDATA := IN_XMLDATA;
BEGIN
-- 기존데이터 삭제
DELETE PHCYAXML
WHERE JSNYEONDO = in_sjsnyeondo
AND JMDRBEONHO = in_sjmdrbeonho;
/* XML내역 */
FOR FORM_XMLDATA IN (SELECT EXTRACTVALUE(VALUE(P), '/form/@form_cd') FORM_CD, -- 서식코드
EXTRACT(VALUE(P), '/form/man') MAN_XML
FROM TABLE(XMLSEQUENCE(EXTRACT(XMLTYPE(SXMLDATA), '/yesone/form'))) P) LOOP
FOR MAN_XMLDATA IN (SELECT EXTRACTVALUE(VALUE(P), '/man/@ftyr_market_tot_amt') FTYR_MARKET_TOT_AMT, -- 전전년도_전통시장공제대상금액합계
EXTRACTVALUE(VALUE(P), '/man/@ftyr_tmoney_tot_amt') FTYR_TMONEY_TOT_AMT, -- 전전년도_대중교통공제대상금액합계
EXTRACTVALUE(VALUE(P), '/man/@ftyr_tot_amt') FTYR_TOT_AMT, -- 전전년도_일반공제대상금액합계
EXTRACTVALUE(VALUE(P), '/man/@name') NAME, -- 성명
EXTRACTVALUE(VALUE(P), '/man/@pre_market_tot_amt') PRE_MARKET_TOT_AMT, -- 직전년도_전통시장공제대상금액합계
EXTRACTVALUE(VALUE(P), '/man/@pre_tmoney_tot_amt') PRE_TMONEY_TOT_AMT, -- 직전년도_대중교통공제대상금액합계
EXTRACTVALUE(VALUE(P), '/man/@pre_tot_amt') PRE_TOT_AMT, -- 직전년도_일반공제대상금액합계
EXTRACTVALUE(VALUE(P), '/man/@resid') RESID,
EXTRACT(VALUE(P), '/man/data') DATA_XML
FROM TABLE(XMLSEQUENCE(EXTRACT(FORM_XMLDATA.MAN_XML, '/man'))) P ) LOOP
FOR DATA_XMLDATA IN (SELECT EXTRACTVALUE(VALUE(P), '/data/@acc_no') ACC_NO, -- 계좌/증권번호
EXTRACTVALUE(VALUE(P), '/data/@busnid') BUSNID, -- 사업자번호
EXTRACTVALUE(VALUE(P), '/data/@dat_cd') DAT_CD , -- 자료코드
EXTRACTVALUE(VALUE(P), '/data/@donation_cd') DONATION_CD, -- 기부유형
EXTRACTVALUE(VALUE(P), '/data/@edu_tp') EDU_TP, -- 교육비종류
EXTRACTVALUE(VALUE(P), '/data/@first_tot_amt') FIRST_TOT_AMT, -- 귀속년도_상반기_대상금액합계(조회기간)
EXTRACTVALUE(VALUE(P), '/data/@first_year_tot_amt') FIRST_YEAR_TOT_AMT, -- 귀속년도_상반기_대상금액합계
EXTRACTVALUE(VALUE(P), '/data/@inqr_end_mm') INQR_END_MM, -- 조회기간 종료월
EXTRACTVALUE(VALUE(P), '/data/@inqr_strt_mm') INQR_STRT_MM, -- 조회기간 시작월
EXTRACTVALUE(VALUE(P), '/data/@second_tot_amt') SECOND_TOT_AMT, -- 귀속년도_하반기_대상금액합계(조회기간)
EXTRACTVALUE(VALUE(P), '/data/@second_year_tot_amt') SECOND_YEAR_TOT_AMT, -- 귀속년도_하반기_대상금액합계
EXTRACTVALUE(VALUE(P), '/data/@secu_no') SECU_NO, -- 계좌번호
EXTRACTVALUE(VALUE(P), '/data/@trade_nm') TRADE_NM, -- 상호
EXTRACTVALUE(VALUE(P), '/data/@use_place_cd') USE_PLACE_CD, -- 종류
EXTRACTVALUE(VALUE(P), '/data/ann_tot_amt') ANN_TOT_AMT, -- 당해연도납입금액
EXTRACTVALUE(VALUE(P), '/data/com_cd') COM_CD, -- 금융회사등 코드
EXTRACTVALUE(VALUE(P), '/data/course_cd') COURSE_CD, -- 과정코드
EXTRACTVALUE(VALUE(P), '/data/ddct_bs_ass_amt') DDCT_BS_ASS_AMT, -- 소득공제대상액/순납입금액
EXTRACTVALUE(VALUE(P), '/data/debt') DEBT, -- 차입금
EXTRACTVALUE(VALUE(P), '/data/end_dt') END_DT, -- 계약종료일/최종상환예정일
EXTRACTVALUE(VALUE(P), '/data/fixed_rate_debt') FIXED_RATE_DEBT, -- 고정금리차입금
EXTRACTVALUE(VALUE(P), '/data/fund_nm') FUND_NM, -- 펀드명
EXTRACTVALUE(VALUE(P), '/data/goods_nm') GOODS_NM, -- 상품명,보험종류,저축명
EXTRACTVALUE(VALUE(P), '/data/house_take_dt') HOUSE_TAKE_DT, -- 주택취득일
EXTRACTVALUE(VALUE(P), '/data/insu1_nm') INSU1_NM, -- 성명_주피보험자
EXTRACTVALUE(VALUE(P), '/data/insu1_resid') INSU1_RESID, -- 주민등록번호_주피보험자
EXTRACTVALUE(VALUE(P), '/data/insu2_nm_1') INSU2_NM_1, -- 성명_종피보험자_3
EXTRACTVALUE(VALUE(P), '/data/insu2_nm_2') INSU2_NM_2, -- 성명_종피보험자_1
EXTRACTVALUE(VALUE(P), '/data/insu2_nm_3') INSU2_NM_3, -- 성명_종피보험자_2
EXTRACTVALUE(VALUE(P), '/data/insu2_resid_1') INSU2_RESID_1, -- 주민등록번호_종피보험자_3
EXTRACTVALUE(VALUE(P), '/data/insu2_resid_2') INSU2_RESID_2, -- 주민등록번호_종피보험자_1
EXTRACTVALUE(VALUE(P), '/data/insu2_resid_3') INSU2_RESID_3, -- 주민등록번호_종피보험자_2
EXTRACTVALUE(VALUE(P), '/data/lend_dt') LEND_DT, -- 대출일
EXTRACTVALUE(VALUE(P), '/data/lend_goods_nm') LEND_GOODS_NM, -- 상품명
EXTRACTVALUE(VALUE(P), '/data/lend_kd') LEND_KD, -- 대출종류
EXTRACTVALUE(VALUE(P), '/data/lend_loan_amt') LEND_LOAN_AMT, -- 대출원금
EXTRACTVALUE(VALUE(P), '/data/mort_setup_dt') MORT_SETUP_DT, -- 저당권설정일
EXTRACTVALUE(VALUE(P), '/data/not_defer_debt') NOT_DEFER_DEBT, -- 비거치식상환차입금
EXTRACTVALUE(VALUE(P), '/data/pay_method') PAY_METHOD, -- 납입방법
EXTRACTVALUE(VALUE(P), '/data/pension_cd') PENSION_CD, -- 계좌유형
EXTRACTVALUE(VALUE(P), '/data/reg_dt') REG_DT, -- 가입일자
EXTRACTVALUE(VALUE(P), '/data/repay_years') REPAY_YEARS, -- 상환기간연수
EXTRACTVALUE(VALUE(P), '/data/saving_gubn') SAVING_GUBN, -- 저축구분
EXTRACTVALUE(VALUE(P), '/data/start_dt') START_DT, -- 계약시작일/최초차입일
EXTRACTVALUE(VALUE(P), '/data/subject_nm') SUBJECT_NM, -- 과정명
EXTRACTVALUE(VALUE(P), '/data/sum') SUM, -- 년간합계액
EXTRACTVALUE(VALUE(P), '/data/sum/@ddct') DDCT, -- 소득공제대상액
EXTRACTVALUE(VALUE(P), '/data/tax_year_amt') TAX_YEAR_AMT, -- 당해연도인출금액
EXTRACTVALUE(VALUE(P), '/data/this_year_rede_amt') THIS_YEAR_REDE_AMT -- 당해년 원금상환
FROM TABLE(XMLSEQUENCE(EXTRACT(MAN_XMLDATA.DATA_XML, '/data'))) P ) LOOP
DBMS_OUTPUT.PUT_LINE('FORM_CD : ' || FORM_XMLDATA.FORM_CD);
DBMS_OUTPUT.PUT_LINE('RESID : ' || MAN_XMLDATA.RESID);
DBMS_OUTPUT.PUT_LINE('NAME : ' || MAN_XMLDATA.NAME);
DBMS_OUTPUT.PUT_LINE('DAT_CD : ' || DATA_XMLDATA.DAT_CD);
DBMS_OUTPUT.PUT_LINE('BUSNID : ' || DATA_XMLDATA.BUSNID);
DBMS_OUTPUT.PUT_LINE('TRADE_NM : ' || DATA_XMLDATA.TRADE_NM);
DBMS_OUTPUT.PUT_LINE('ACC_NO : ' || DATA_XMLDATA.ACC_NO);
DBMS_OUTPUT.PUT_LINE('GOODS_NM : ' || DATA_XMLDATA.GOODS_NM);
DBMS_OUTPUT.PUT_LINE('SUM : ' || DATA_XMLDATA.SUM);
DBMS_OUTPUT.PUT_LINE('DDCT : ' || DATA_XMLDATA.DDCT);
DBMS_OUTPUT.PUT_LINE('DDCT_BS_ASS_AMT : ' || DATA_XMLDATA.DDCT_BS_ASS_AMT);
DBMS_OUTPUT.PUT_LINE('EDU_TP : ' || DATA_XMLDATA.EDU_TP);
DBMS_OUTPUT.PUT_LINE('COURSE_CD : ' || DATA_XMLDATA.COURSE_CD);
DBMS_OUTPUT.PUT_LINE('SUBJECT_NM : ' || DATA_XMLDATA.SUBJECT_NM);
DBMS_OUTPUT.PUT_LINE('START_DT : ' || DATA_XMLDATA.START_DT);
DBMS_OUTPUT.PUT_LINE('END_DT : ' || DATA_XMLDATA.END_DT);
DBMS_OUTPUT.PUT_LINE('COM_CD : ' || DATA_XMLDATA.COM_CD);
DBMS_OUTPUT.PUT_LINE('ANN_TOT_AMT : ' || DATA_XMLDATA.ANN_TOT_AMT);
DBMS_OUTPUT.PUT_LINE('TAX_YEAR_AMT : ' || DATA_XMLDATA.TAX_YEAR_AMT);
DBMS_OUTPUT.PUT_LINE('PENSION_CD : ' || DATA_XMLDATA.PENSION_CD);
DBMS_OUTPUT.PUT_LINE('FTYR_TOT_AMT : ' || MAN_XMLDATA.FTYR_TOT_AMT);
DBMS_OUTPUT.PUT_LINE('FTYR_MARKET_TOT_AMT : ' || MAN_XMLDATA.FTYR_MARKET_TOT_AMT);
DBMS_OUTPUT.PUT_LINE('FTYR_TMONEY_TOT_AMT : ' || MAN_XMLDATA.FTYR_TMONEY_TOT_AMT);
DBMS_OUTPUT.PUT_LINE('PRE_TOT_AMT : ' || MAN_XMLDATA.PRE_TOT_AMT);
DBMS_OUTPUT.PUT_LINE('PRE_MARKET_TOT_AMT : ' || MAN_XMLDATA.PRE_MARKET_TOT_AMT);
DBMS_OUTPUT.PUT_LINE('PRE_TMONEY_TOT_AMT : ' || MAN_XMLDATA.PRE_TMONEY_TOT_AMT);
DBMS_OUTPUT.PUT_LINE('USE_PLACE_CD : ' || DATA_XMLDATA.USE_PLACE_CD);
DBMS_OUTPUT.PUT_LINE('FIRST_TOT_AMT : ' || DATA_XMLDATA.FIRST_TOT_AMT);
DBMS_OUTPUT.PUT_LINE('SECOND_TOT_AMT : ' || DATA_XMLDATA.SECOND_TOT_AMT);
DBMS_OUTPUT.PUT_LINE('FIRST_YEAR_TOT_AMT : ' || DATA_XMLDATA.FIRST_YEAR_TOT_AMT);
DBMS_OUTPUT.PUT_LINE('SECOND_YEAR_TOT_AMT : ' || DATA_XMLDATA.SECOND_YEAR_TOT_AMT);
DBMS_OUTPUT.PUT_LINE('INQR_STRT_MM : ' || DATA_XMLDATA.INQR_STRT_MM);
DBMS_OUTPUT.PUT_LINE('INQR_END_MM : ' || DATA_XMLDATA.INQR_END_MM);
DBMS_OUTPUT.PUT_LINE('LEND_DT : ' || DATA_XMLDATA.LEND_DT);
DBMS_OUTPUT.PUT_LINE('LEND_KD : ' || DATA_XMLDATA.LEND_KD);
DBMS_OUTPUT.PUT_LINE('HOUSE_TAKE_DT : ' || DATA_XMLDATA.HOUSE_TAKE_DT);
DBMS_OUTPUT.PUT_LINE('MORT_SETUP_DT : ' || DATA_XMLDATA.MORT_SETUP_DT);
DBMS_OUTPUT.PUT_LINE('REPAY_YEARS : ' || DATA_XMLDATA.REPAY_YEARS);
DBMS_OUTPUT.PUT_LINE('LEND_GOODS_NM : ' || DATA_XMLDATA.LEND_GOODS_NM);
DBMS_OUTPUT.PUT_LINE('DEBT : ' || DATA_XMLDATA.DEBT);
DBMS_OUTPUT.PUT_LINE('FIXED_RATE_DEBT : ' || DATA_XMLDATA.FIXED_RATE_DEBT);
DBMS_OUTPUT.PUT_LINE('NOT_DEFER_DEBT : ' || DATA_XMLDATA.NOT_DEFER_DEBT);
DBMS_OUTPUT.PUT_LINE('THIS_YEAR_REDE_AMT : ' || DATA_XMLDATA.THIS_YEAR_REDE_AMT);
DBMS_OUTPUT.PUT_LINE('REG_DT : ' || DATA_XMLDATA.REG_DT);
DBMS_OUTPUT.PUT_LINE('SAVING_GUBN : ' || DATA_XMLDATA.SAVING_GUBN);
DBMS_OUTPUT.PUT_LINE('LEND_LOAN_AMT : ' || DATA_XMLDATA.LEND_LOAN_AMT);
DBMS_OUTPUT.PUT_LINE('PAY_METHOD : ' || DATA_XMLDATA.PAY_METHOD);
DBMS_OUTPUT.PUT_LINE('DONATION_CD : ' || DATA_XMLDATA.DONATION_CD);
DBMS_OUTPUT.PUT_LINE('SECU_NO : ' || DATA_XMLDATA.SECU_NO);
DBMS_OUTPUT.PUT_LINE('FUND_NM : ' || DATA_XMLDATA.FUND_NM);
DBMS_OUTPUT.PUT_LINE('INSU1_RESID : ' || DATA_XMLDATA.INSU1_RESID);
DBMS_OUTPUT.PUT_LINE('INSU1_NM : ' || DATA_XMLDATA.INSU1_NM);
DBMS_OUTPUT.PUT_LINE('INSU2_RESID_1 : ' || DATA_XMLDATA.INSU2_RESID_1);
DBMS_OUTPUT.PUT_LINE('INSU2_NM_1 : ' || DATA_XMLDATA.INSU2_NM_1);
DBMS_OUTPUT.PUT_LINE('INSU2_RESID_2 : ' || DATA_XMLDATA.INSU2_RESID_2);
DBMS_OUTPUT.PUT_LINE('INSU2_NM_2 : ' || DATA_XMLDATA.INSU2_NM_2);
DBMS_OUTPUT.PUT_LINE('INSU2_RESID_3 : ' || DATA_XMLDATA.INSU2_RESID_3);
DBMS_OUTPUT.PUT_LINE('INSU2_NM_3 : ' || DATA_XMLDATA.INSU2_NM_3);
INSERT INTO PHCYAXML (JSNYEONDO --정산년도
,JMDRBEONHO --주민등록(사원)번호
,FORM_CD -- 서식코드
,RESID -- 주민등록번호
,NAME -- 성명
,DAT_CD -- 자료코드
,BUSNID -- 사업자번호
,TRADE_NM -- 상호
,ACC_NO -- 계좌/증권번호
,GOODS_NM -- 상품명,보험종류,저축명
,SUM -- 년간합계액
,DDCT -- 소득공제대상액
,DDCT_BS_ASS_AMT -- 소득공제대상액/순납입금액
,EDU_TP -- 교육비종류
,COURSE_CD -- 과정코드
,SUBJECT_NM -- 과정명
,START_DT -- 계약시작일/최초차입일
,END_DT -- 계약종료일/최종상환예정일
,COM_CD -- 금융회사등 코드
,ANN_TOT_AMT -- 당해연도납입금액
,TAX_YEAR_AMT -- 당해연도인출금액
,PENSION_CD -- 계좌유형
,FTYR_TOT_AMT -- 전전년도_일반공제대상금액합계
,FTYR_MARKET_TOT_AMT -- 전전년도_전통시장공제대상금액합계
,FTYR_TMONEY_TOT_AMT -- 전전년도_대중교통공제대상금액합계
,PRE_TOT_AMT -- 직전년도_일반공제대상금액합계
,PRE_MARKET_TOT_AMT -- 직전년도_전통시장공제대상금액합계
,PRE_TMONEY_TOT_AMT -- 직전년도_대중교통공제대상금액합계
,USE_PLACE_CD -- 종류
,FIRST_TOT_AMT -- 귀속년도_상반기_대상금액합계(조회기간)
,SECOND_TOT_AMT -- 귀속년도_하반기_대상금액합계(조회기간)
,FIRST_YEAR_TOT_AMT -- 귀속년도_상반기_대상금액합계
,SECOND_YEAR_TOT_AMT -- 귀속년도_하반기_대상금액합계
,INQR_STRT_MM -- 조회기간 시작월
,INQR_END_MM -- 조회기간 종료월
,LEND_DT -- 대출일
,LEND_KD -- 대출종류
,HOUSE_TAKE_DT -- 주택취득일
,MORT_SETUP_DT -- 저당권설정일
,REPAY_YEARS -- 상환기간연수
,LEND_GOODS_NM -- 상품명
,DEBT -- 차입금
,FIXED_RATE_DEBT -- 고정금리차입금
,NOT_DEFER_DEBT -- 비거치식상환차입금
,THIS_YEAR_REDE_AMT -- 당해년 원금상환액
,REG_DT -- 가입일자
,SAVING_GUBN -- 저축구분
,LEND_LOAN_AMT -- 대출원금
,PAY_METHOD -- 납입방법
,DONATION_CD -- 기부유형
,SECU_NO -- 계좌번호
,FUND_NM -- 펀드명
,INSU1_RESID -- 주민등록번호_주피보험자
,INSU1_NM -- 성명_주피보험자
,INSU2_RESID_1 -- 주민등록번호_종피보험자_3
,INSU2_NM_1 -- 성명_종피보험자_3
,INSU2_RESID_2 -- 주민등록번호_종피보험자_1
,INSU2_NM_2 -- 성명_종피보험자_1
,INSU2_RESID_3 -- 주민등록번호_종피보험자_2
,INSU2_NM_3 -- 성명_종피보험자_2
,JAKEOPJA --작업자
,JEILJA --작업일자
)
VALUES ( in_sjsnyeondo --연말정산_정산년도
,in_sjmdrbeonho --사원번호
,FORM_XMLDATA.FORM_CD -- 서식코드
,MAN_XMLDATA.RESID -- 주민등록번호
,MAN_XMLDATA.NAME -- 성명
,DATA_XMLDATA.DAT_CD -- 자료코드
,DATA_XMLDATA.BUSNID -- 사업자번호
,DATA_XMLDATA.TRADE_NM -- 상호
,DATA_XMLDATA.ACC_NO -- 계좌/증권번호
,DATA_XMLDATA.GOODS_NM -- 상품명,보험종류,저축명
,DATA_XMLDATA.SUM -- 년간합계액
,DATA_XMLDATA.DDCT -- 소득공제대상액
,DATA_XMLDATA.DDCT_BS_ASS_AMT -- 소득공제대상액/순납입금액
,DATA_XMLDATA.EDU_TP -- 교육비종류
,DATA_XMLDATA.COURSE_CD -- 과정코드
,DATA_XMLDATA.SUBJECT_NM -- 과정명
,DATA_XMLDATA.START_DT -- 계약시작일/최초차입일
,DATA_XMLDATA.END_DT -- 계약종료일/최종상환예정일
,DATA_XMLDATA.COM_CD -- 금융회사등 코드
,DATA_XMLDATA.ANN_TOT_AMT -- 당해연도납입금액
,DATA_XMLDATA.TAX_YEAR_AMT -- 당해연도인출금액
,DATA_XMLDATA.PENSION_CD -- 계좌유형
,MAN_XMLDATA.FTYR_TOT_AMT -- 전전년도_일반공제대상금액합계
,MAN_XMLDATA.FTYR_MARKET_TOT_AMT -- 전전년도_전통시장공제대상금액합계
,MAN_XMLDATA.FTYR_TMONEY_TOT_AMT -- 전전년도_대중교통공제대상금액합계
,MAN_XMLDATA.PRE_TOT_AMT -- 직전년도_일반공제대상금액합계
,MAN_XMLDATA.PRE_MARKET_TOT_AMT -- 직전년도_전통시장공제대상금액합계
,MAN_XMLDATA.PRE_TMONEY_TOT_AMT -- 직전년도_대중교통공제대상금액합계
,DATA_XMLDATA.USE_PLACE_CD -- 종류
,DATA_XMLDATA.FIRST_TOT_AMT -- 귀속년도_상반기_대상금액합계(조회기간)
,DATA_XMLDATA.SECOND_TOT_AMT -- 귀속년도_하반기_대상금액합계(조회기간)
,DATA_XMLDATA.FIRST_YEAR_TOT_AMT -- 귀속년도_상반기_대상금액합계
,DATA_XMLDATA.SECOND_YEAR_TOT_AMT -- 귀속년도_하반기_대상금액합계
,DATA_XMLDATA.INQR_STRT_MM -- 조회기간 시작월
,DATA_XMLDATA.INQR_END_MM -- 조회기간 종료월
,DATA_XMLDATA.LEND_DT -- 대출일
,DATA_XMLDATA.LEND_KD -- 대출종류
,DATA_XMLDATA.HOUSE_TAKE_DT -- 주택취득일
,DATA_XMLDATA.MORT_SETUP_DT -- 저당권설정일
,DATA_XMLDATA.REPAY_YEARS -- 상환기간연수
,DATA_XMLDATA.LEND_GOODS_NM -- 상품명
,DATA_XMLDATA.DEBT -- 차입금
,DATA_XMLDATA.FIXED_RATE_DEBT -- 고정금리차입금
,DATA_XMLDATA.NOT_DEFER_DEBT -- 비거치식상환차입금
,DATA_XMLDATA.THIS_YEAR_REDE_AMT -- 당해년 원금상환액
,DATA_XMLDATA.REG_DT -- 가입일자
,DATA_XMLDATA.SAVING_GUBN -- 저축구분
,DATA_XMLDATA.LEND_LOAN_AMT -- 대출원금
,DATA_XMLDATA.PAY_METHOD -- 납입방법
,DATA_XMLDATA.DONATION_CD -- 기부유형
,DATA_XMLDATA.SECU_NO -- 계좌번호
,DATA_XMLDATA.FUND_NM -- 펀드명
,DATA_XMLDATA.INSU1_RESID -- 주민등록번호_주피보험자
,DATA_XMLDATA.INSU1_NM -- 성명_주피보험자
,DATA_XMLDATA.INSU2_RESID_1 -- 주민등록번호_종피보험자_3
,DATA_XMLDATA.INSU2_NM_1 -- 성명_종피보험자_3
,DATA_XMLDATA.INSU2_RESID_2 -- 주민등록번호_종피보험자_1
,DATA_XMLDATA.INSU2_NM_2 -- 성명_종피보험자_1
,DATA_XMLDATA.INSU2_RESID_3 -- 주민등록번호_종피보험자_2
,DATA_XMLDATA.INSU2_NM_3 -- 성명_종피보험자_2
,in_sjakeopja --연말정산_작업자
,TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS') --연말정산_작업일자
);
END LOOP;
END LOOP;
END LOOP;
END;
COMMIT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN null;
END PHC6_XMLTODATA_ALL;
반응형
':::: 개발 :::: > └ JSP & SPRING' 카테고리의 다른 글
spring boot Quartz @service 에 적용하기.. (0) | 2020.10.21 |
---|---|
windows spring boot cli 설정 (윈도우) 1 (0) | 2020.01.13 |
웹 프로그래머 면접에 물어 볼만한 질문 모음 이미지캡처 (0) | 2019.09.03 |
예전에 스프링 세팅할때 참조하던 사이트 캡처 (0) | 2019.09.03 |
마이바티스 인서트 리턴 조심 mybatis (0) | 2019.07.08 |
hibernate.hbm2ddl.auto 옵션 설정으로 DB 날려먹지 말자... (0) | 2018.10.30 |
MAP >> JSON >> JSONArray 변환 참조 (0) | 2018.10.12 |
spring boot JPA 실제 쿼리 로그 찍어보기 (0) | 2018.10.10 |