본문 바로가기

Dynamic SQL2

결재 검증 SQL의 실행 흐름 개선 (EXISTS, Short-Circuit 적용) 📌 업무 배경공통된 컬럼을 사용하는 12개의 업무 테이블이 존재테이블: APP_A_MST ~ APP_L_MST공통컬럼: doc_id, biz_year, biz_quarter, biz_round각 업무 결재가 완료되면, 다른 업무들의 상태가 결재완료인지 조회, 다음 과정을 수행하는데 필요한 데이터를 생성해야 함결재가 완료시 결재문서의 doc_id가 반환됨특정 문서(doc_id)가 어느 테이블에 속해 있는지 모름해당 문서가 속한 연도 / 분기 / 차수를 기준으로👉 모든 업무 테이블에서 결재 완료 상태인지 검증APP_A_MST ~ APP_L_MST 가 아닌, 하나의 테이블을 사용하면 좋겠지만, 그럴 수 없는 상황1️⃣ 1차 버전 – UNION ALL 기반 전체 스캔🔧 접근 방식Dynamic SQL을 사용.. 2026. 2. 3.
SQL 동적 쿼리(Dynamic SQL) 요구사항: YEARXX 년도 사업장별 사고 유형 건수를 보여주세요.1. 사고유형: 기준정보 테이블에서 ROOTTP = 'DSTTYP' AND CODELV = 2 AND USEYNX = 'Y' 인 조건을 만족하는 데이터2. 사업장: 사업장 테이블에서 USEYNX = 'Y'인 값3. 사고: 사고관리테이블에 저장되어 있음, COMPCD와 DOCSEQ을 primary key로 가지며 DISTYP에 사고유형 기준정보의 CODEVL(사고 유형 코드)을 저장. 핵심 제약사항1. 기준정보가 바뀌더라도 쿼리를 수정하고 싶지 않음2. 사업장이 추가, 삭제되더라도 쿼리를 수정하고 싶지 않음 Dynamic SQL 기법 선택 이유1. 사업장, 기준정보, 건수만 구해서 소스코드에서 정리하게 되면, 성능이 저하됨. 소스코드에서 반.. 2025. 10. 1.