디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

야근도중 빡쳐서 아오

개발4년차갤로그로 이동합니다. 2011.12.27 21:57:57
조회 168 추천 0 댓글 5


혹시나 아직 플그래밍 입문이거나 한참 하고있는 넘들중에


 

쿼리 짤때 동적쿼리로 좀 짜지 마라 두번짜지 마라 세번짜지 마라


 

아오 조ㄹ 라 빡쳐서 ㄴㅣㅁㅣ 아오 이런 수박


 

이전에 프로젝트에서 한 초보 코더랑 나름 10년이상 짬밥있다는 차장이 플젝트 님 내에서 한 업무 팀맡아서 하던거 두사람다 나가서


물려 받았는데 프로시져 하나 뜯을때마다 욕이 절로나온다


유지보수 할꺼 생각해서라도 동적쿼리 짜면 진짜 뒤진다


짠사람도 모른다 볼사람도 모른다


 

한눈에 들어오는게 없다 니미..


 

어디가 FROM 절이고 어디가 웨어절이고 아놔 미나어미아ㅓ빚럽


 

절때 동적쿼리 쓰지 말아라.....플그래밍 입문자들 동적쿼리 알려줘도 절대좀 쓰지마라


 

어쩔수 없다고 동적 쿼리 짜라는것도 잘찾아보면 답 없는거 없다 정적 쿼리좀 쓰자 제발


 

CREATE OR REPLACE PROCEDURE NEOE.UP_CG_C_CUST_PRE_SELECT1 (
    P_CD_COMPANY          IN    VARCHAR2    DEFAULT NULL,           --  회사코드
    P_DT_SPLY_FROM        IN    VARCHAR2    DEFAULT \'00000000\',     --  공급일자
    P_DT_SPLY_TO          IN    VARCHAR2    DEFAULT \'99999999\',     --  공급일자
    P_CD_ZONE             IN    VARCHAR2    DEFAULT NULL,           --  지역관리소   
    P_CHA_ISPT            IN    VARCHAR2    DEFAULT NULL,           --  차수   
    P_GB_PAYTM            IN    VARCHAR2    DEFAULT NULL,           --  납기구분    
    P_GB_AREA             IN    VARCHAR2    DEFAULT \'\',             --  순로구분
    P_CD_AREA_ISPT        IN    VARCHAR2    DEFAULT \'\',             --  검침구역
    P_CD_DONG             IN    VARCHAR2    DEFAULT \'\',             --  법정동
    P_CD_BLD              IN    VARCHAR2    DEFAULT \'\',             --  건물
    P_GB_HS               IN    VARCHAR2    DEFAULT \'\',             --  주택구분
    P_YN_EMP              IN    VARCHAR2    ,                       --    관리담당자(Y:유, N:무, 공백)     
    P_GB_ISPT             IN    VARCHAR2    ,                       --    안전점검
    RC1                   OUT   SYS_REFCURSOR
)
AS
/*******************************************
**  System          : -- 통합정보시스템
**  Sub System      : 고객관리 > 고객정보
**  Page            : 검침및 점검담당자 등록(건물 조회)
**  Desc            : UP_CG_C_CUST_PRE_SELECT1
**  Return Values
**  작    성    자  : choi
**  작    성    일  : 2010.05.08
**  수    정    자  :
********************************************
** Change History
*********************************************
*********************************************/
V_SELECT VARCHAR2(3000);

V_WHERE1 VARCHAR2(3000);
V_WHERE2 VARCHAR2(2000);
V_WHERE3 VARCHAR2(1000);
V_ORDER  VARCHAR2(1000);

BEGIN
 
   
    --ELSE
    --END IF;
    V_SELECT :=V_SELECT ||\'SELECT   A.CD_COMPANY, A.CD_ZONE,A.CD_DONG,A.CD_BLD,A.NM_BLD, A.NM_TERR, \'\'\'\' AS ERR_MSG, A.CNT, \';
    V_SELECT :=V_SELECT ||\'         A.NEW_ADDR,A.OLD_ADDR,CD_TERR, CD_TERR AS OLD_TERR ,GB_AREA ,GB_PAYTM ,CHK, \'\'\' || P_CHA_ISPT || \'\'\' AS CHA_ISPT,\';
   
    IF P_GB_AREA = \'01\'  THEN  --검침
      V_SELECT :=V_SELECT ||\'       FN_CG_GET_NM(A.CD_COMPANY,\'\'CG_C_CHARG\'\',A.CD_ZONE,\'\'01\'\',A.OLD_TERR) NM_OLD_TERR\'; 
   
    ELSE
       V_SELECT :=V_SELECT ||\'      FN_CG_GET_NM(A.CD_COMPANY,\'\'CG_C_CHARG\'\',A.CD_ZONE,\'\'02\'\',A.OLD_TERR) NM_OLD_TERR\';
    END IF;
    V_SELECT :=V_SELECT ||\'     FROM ( SELECT   A.CD_COMPANY, A.CD_ZONE,\';                              
    V_SELECT :=V_SELECT ||\'                     A.CD_DONG,A.CD_BLD,B.NM_BLD, COUNT(A.NO_CUST) AS CNT, \';
 
    V_SELECT :=V_SELECT ||\'                     C.ADDR_SIDO || \'\' \'\'|| C.ADDR_GUGUN ||  \'\' \'\'|| B.ADDR_ROAD || \'\' \'\' ||B.L_ADDR  || DECODE(NVL(B.S_ADDR,\'\' \'\'), \'\' \'\', \'\'\'\', \'\'-\'\' || B.S_ADDR)  AS NEW_ADDR,\';
    V_SELECT :=V_SELECT ||\'                     C.ADDR_DONG || \'\' \'\'|| B.L_LOT || \'\' \'\'|| DECODE(NVL(B.S_LOT,\'\' \'\'), \'\' \'\', \'\'\'\', \'\'-\'\' || B.S_LOT) AS OLD_ADDR,\';
    IF P_GB_AREA = \'01\'  THEN  --검침
        V_SELECT :=V_SELECT ||\'                 MAX(A.CD_TERR_ISPT) AS CD_TERR,\';
        V_SELECT :=V_SELECT ||\'                 FN_CG_GET_NM(A.CD_COMPANY,\'\'CG_C_CHARG\'\',A.CD_ZONE,\'\'01\'\',MAX(A.CD_TERR_ISPT)) NM_TERR, \';
        V_SELECT :=V_SELECT ||\'                 decode(NVL(MAX(A.CD_TERR_ISPT),\'\' \'\'), \'\' \'\',\';
        V_SELECT :=V_SELECT ||\'                                                       FN_CG_GET_C_FIND_TERR(A.CD_COMPANY,\'\'1\'\',\'\'\'||P_GB_PAYTM ||\'\'\',A.CD_BLD)\';
        V_SELECT :=V_SELECT ||\'                                                       ,MAX(A.CD_TERR_ISPT)) OLD_TERR,\';
        V_SELECT :=V_SELECT ||\'                 \'\'01\'\' GB_AREA,\';
        V_SELECT :=V_SELECT ||\'                 \'\'\'||P_GB_PAYTM ||\'\'\' as GB_PAYTM,\';
    ELSE
        V_SELECT :=V_SELECT ||\'                 MAX(A.CD_TERR_INSP) AS CD_TERR,\';
        V_SELECT :=V_SELECT ||\'                 FN_CG_GET_NM(A.CD_COMPANY,\'\'CG_C_CHARG\'\',A.CD_ZONE,\'\'02\'\', MAX(A.CD_TERR_INSP)) NM_TERR,\';
        V_SELECT :=V_SELECT ||\'                 decode(NVL( MAX(A.CD_TERR_INSP),\'\' \'\'), \'\' \'\',\';
        V_SELECT :=V_SELECT ||\'                 FN_CG_GET_C_FIND_TERR(A.CD_COMPANY,\'\'2\'\',\'\'\'||P_GB_PAYTM ||\'\'\',A.CD_BLD)\';
        V_SELECT :=V_SELECT ||\'                 , MAX(A.CD_TERR_INSP)) OLD_TERR,\';
        V_SELECT :=V_SELECT ||\'                 \'\'02\'\' GB_AREA,\';
        V_SELECT :=V_SELECT ||\'                 \'\'\'||P_GB_PAYTM ||\'\'\' as GB_PAYTM,\';
    END IF;
  
    V_SELECT :=V_SELECT ||\'                     \'\'N\'\' CHK\';
    V_SELECT :=V_SELECT ||\'               FROM  CG_C_CUST A,CG_Z_BLD  B ,CG_Z_DONG C, CG_U_USER D \';
   
    V_WHERE1 := \'                         WHERE A.CD_COMPANY     = \'\'\'||P_CD_COMPANY ||\'\'\'\'; 
    V_WHERE1 := V_WHERE1  ||\'               AND NVL(TRIM(A.DT_MAINCHG), \'\'\'|| P_DT_SPLY_FROM ||\'\'\')     >=  \'\'\'||P_DT_SPLY_FROM ||\'\'\'\';
    V_WHERE1 := V_WHERE1  ||\'               AND NVL(TRIM(A.DT_MAINCHG), \'\'\'|| P_DT_SPLY_FROM ||\'\'\')     <=  \'\'\'|| P_DT_SPLY_TO||\'\'\'\';
    V_WHERE1 := V_WHERE1  ||\'               AND A.CHA_ISPT     =   \'\'\'|| P_CHA_ISPT||\'\'\'\';
    V_WHERE1 := V_WHERE1  ||\'               AND  A.CD_COMPANY = C.CD_COMPANY\';
    V_WHERE1 := V_WHERE1  ||\'               AND  A.CD_DONG    = C.CD_DONG\';
    V_WHERE1 := V_WHERE1  ||\'               AND  A.CD_COMPANY = B.CD_COMPANY\';
    V_WHERE1 := V_WHERE1  ||\'               AND  A.CD_BLD     = B.CD_BLD\';
    V_WHERE1 := V_WHERE1  ||\'               AND  A.CD_COMPANY = D.CD_COMPANY(+)\';
    V_WHERE1 := V_WHERE1  ||\'               AND  A.CD_FCLT_BLD     = D.CD_FCLT_BLD(+)\';
    V_WHERE1 := V_WHERE1  ||\'               AND  A.ST_CUST     NOT IN  (\'\'40\'\', \'\'34\'\')  \';
    IF P_GB_AREA = \'02\' THEN   
        V_WHERE1 := V_WHERE1  ||\'           AND  D.GB_FCLT <> \'\'10\'\' \';
    END IF;
   
    IF NVL(P_GB_PAYTM, \' \') <> \' \' THEN
    V_WHERE1 := V_WHERE1  ||\'               AND A.GB_PAYTM   IN ( SELECT CD_SYSDEF \';
    V_WHERE1 := V_WHERE1  ||\'                                       FROM MA_CODEDTL  \';
    V_WHERE1 := V_WHERE1  ||\'                                       WHERE CD_COMPANY =\'\'\'||P_CD_COMPANY ||\'\'\'\';
    V_WHERE1 := V_WHERE1  ||\'                                       AND CD_FIELD    = \'\'CG_C_00015\'\'\';
    V_WHERE1 := V_WHERE1  ||\'                                       AND CD_FLAG2    =   \'\'\'|| P_GB_PAYTM||\'\'\'\';
    V_WHERE1 := V_WHERE1  ||\'                                                                                   ) \' ;
    END IF;
    IF NVL(P_CD_ZONE,\' \') != \' \' THEN
       V_WHERE1 := V_WHERE1  ||\'            AND A.CD_ZONE        =\'\'\'||   P_CD_ZONE || \'\'\'\';
    END IF;
   
    IF NVL(P_CD_DONG,\' \') != \' \' THEN
       V_WHERE1 := V_WHERE1  ||\'            AND A.CD_DONG        =\'\'\'||   P_CD_DONG || \'\'\'\';
    END IF;
   
    IF NVL(P_CD_BLD,\' \') != \' \' THEN
       V_WHERE1 := V_WHERE1  ||\'            AND A.CD_BLD        =\'\'\'||   P_CD_BLD || \'\'\'\';
    END IF;

    IF NVL(P_GB_HS,\' \') != \' \' THEN
       V_WHERE1 := V_WHERE1  ||\'            AND B.GB_HS         =\'\'\'||   P_GB_HS || \'\'\'\';
    END IF;
       
    IF P_GB_AREA = \'01\' THEN

        IF NVL(P_CD_AREA_ISPT,\' \')  != \' \' AND  P_CD_AREA_ISPT <> \'%\' THEN
        V_WHERE2:= V_WHERE2  ||\'            AND A.CD_TERR_ISPT = \'\'\' ||  P_CD_AREA_ISPT || \'\'\'\';
        END IF;
        IF NVL( P_YN_EMP ,\' \') =\'Y\' THEN--  관리담당자(Y:유, N:무, 공백)
         V_WHERE2:= V_WHERE2  ||\'           AND NVL(A.CD_TERR_ISPT, \'\' \'\') <> \'\' \'\'\';
        ELSIF NVL( P_YN_EMP ,\' \') =\'N\' THEN--  관리담당자(Y:유, N:무, 공백)
         V_WHERE2:= V_WHERE2  ||\'           AND NVL(A.CD_TERR_ISPT, \'\' \'\') = \'\' \'\'\';
        END IF;
    ELSIF P_GB_AREA = \'02\' THEN

        IF NVL(P_CD_AREA_ISPT,\' \')  != \' \'  AND  P_CD_AREA_ISPT <> \'%\' THEN

         V_WHERE2:= V_WHERE2  ||\'           AND A.CD_TERR_INSP = \'\'\' ||  P_CD_AREA_ISPT || \'\'\'\';

        END IF;
        IF NVL( P_YN_EMP ,\' \') =\'Y\' THEN --  관리담당자(Y:유, N:무, 공백)
        V_WHERE2:= V_WHERE2  || \'           AND NVL(A.CD_TERR_INSP, \'\' \'\') <> \'\' \'\'\';
        ELSIF NVL( P_YN_EMP ,\' \') =\'N\' THEN --  관리담당자(Y:유, N:무, 공백)
        V_WHERE2:= V_WHERE2  ||\'            AND NVL(A.CD_TERR_INSP, \'\' \'\') = \'\' \'\'\';
        V_WHERE2:= V_WHERE2  ||\'            AND D.GB_FCLT <> \'\'10\'\' \';
        END IF;
       
        V_WHERE2:= V_WHERE2  || \'           AND B.YM_INSP1 LIKE \'\'\' || P_GB_ISPT || \'\'\' || \'\'%\'\' \';
--        IF (NVL(P_GB_ISPT,\'\') <> \'\') THEN
--            V_WHERE2:= V_WHERE2  || \' AND B.YM_INSP1 = \'\'\' || P_GB_ISPT || \'\'\' \';
--        END IF;
    END IF;
 
    V_WHERE2 := V_WHERE2  ||\'               GROUP BY  A.CD_COMPANY, A.CD_ZONE,A.CD_DONG,A.CD_BLD, B.NM_BLD, C.ADDR_SIDO , C.ADDR_GUGUN,\';
    V_WHERE2 := V_WHERE2  ||\'                           B.ADDR_ROAD ,B.L_ADDR, B.S_ADDR,\';
    V_WHERE2 := V_WHERE2  ||\'                           C.ADDR_DONG, B.L_LOT ,B.S_LOT, DECODE(\'\'\' || P_GB_AREA || \'\'\', \'\'01\'\', A.CD_TERR_ISPT, A.CD_TERR_INSP) )A \';
    V_ORDER := \'                    ORDER BY A.CD_COMPANY,A.CD_DONG,A.CD_BLD \' ;

--   RAISE_APPLICATION_ERROR (-20001, \'UP_CG_C_CUST_SELECT10\' || \'=\' ||  V_WHERE1);
--   RETURN;
DELETE FROM CG_C_TEST;
INSERT INTO CG_C_TEST
(
    TEST_SQL
)
VALUES
(
V_SELECT ||V_WHERE1 ||V_WHERE2 || V_WHERE3 || V_ORDER
);
    OPEN RC1 FOR
    V_SELECT ||V_WHERE1 ||V_WHERE2 || V_WHERE3 || V_ORDER;
  
 
    RETURN;
EXCEPTION
        WHEN OTHERS
        THEN
            RAISE_APPLICATION_ERROR (-20001, \'UP_CG_C_CUST_PRE_SELECT1\' || SQLERRM);
END UP_CG_C_CUST_PRE_SELECT1;


 


 

혹여나 나중에 내 아랫사람이 이따구로 쿼리 코딩하다가 걸리면 진짜 뒤진다

추천 비추천

0

고정닉 0

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 해외에서 겪는 불합리한 대우에 대응 잘 할 것 같은 스타는? 운영자 25/11/03 - -
AD 저녁 뭐먹지? 오늘의 메뉴 추천! 운영자 25/10/31 - -
공지 프로그래밍 갤러리 이용 안내 [97] 운영자 20.09.28 48522 65
2901012 나는조현병이야 나는내향적이야 손발이시립디다갤로그로 이동합니다. 05:49 14 0
2901009 요새 메이크 닷컴<<이거 시나리오 의뢰 존나 들어오노 ㅆㅇㅆ(124.216) 04:45 20 0
2901008 vsc 컴파일 관련 문제 질문 LeNa갤로그로 이동합니다. 04:31 13 0
2901007 파이널 IK 크랙 받아가지고 쓰는중인데 루도그담당(58.239) 03:31 16 0
2900994 직업수명의미없다 빌게이츠가10년내 싹대체된다함 프갤러(175.197) 02:33 18 0
2900992 비트는 100k 몇번 더 왔다갔다 할거같은데 [1] 따당갤로그로 이동합니다. 02:03 31 0
2900991 ㅆㅇㅆ저새끼 개웃긴게 ㅇㅇ(218.149) 01:22 50 3
2900990 음기 충전 발명도둑잡기(118.216) 01:11 38 0
2900989 고니시 유키나가가 문경과 새재에서 히데요시에게 보낸 편지 책사풍후갤로그로 이동합니다. 00:10 23 0
2900988 와 나 대구에서 임금 체불 300만 떼먹힌걸로 피눈물 흘렸었는데 ㅆㅇㅆ(124.216) 11.06 126 7
2900986 [애니뉴스] 미소녀 시뮬레이션 게임에 대한 고찰 프갤러(121.172) 11.06 27 0
2900985 나님 프갤 뛰뛰크루 만들어볼깡? [1] ♥KiTTY냥덩♥갤로그로 이동합니다. 11.06 27 0
2900984 [애니뉴스] 코노스바 게임 관련 자료 + 이미지 + 카제나 짧은 평 프갤러(121.172) 11.06 18 0
2900982 아무래도 전 회사 다니면서 해마와 뇌량 수축이 생긴거 같아 [1] chironpractor갤로그로 이동합니다. 11.06 31 0
2900981 모기 때문에 자는거 존나 밀렷네 ㅅㅂ [2] ♥KiTTY냥덩♥갤로그로 이동합니다. 11.06 49 0
2900980 나님 겨우 모기 때문에 쫓겨낫오.. 너무 처량행.. ♥KiTTY냥덩♥갤로그로 이동합니다. 11.06 40 0
2900979 모기한테 쫓겨서 피난 나왓당.. ♥KiTTY냥덩♥갤로그로 이동합니다. 11.06 42 0
2900978 요즘 존나 문란해서 aws 툴 키디들이 나 인프라 전문가입네 이지랄 [1] 프갤러(211.234) 11.06 41 0
2900977 나는 아직도 왜 자바가 클래스 패스 모듈 패스 따로 두는지 모르겠어 ㅆㅇㅆ(124.216) 11.06 24 0
2900976 중학생 수준 문해력 테스트라고 하는데 어려운듯.. ♥KiTTY냥덩♥갤로그로 이동합니다. 11.06 30 0
2900974 그러고보니 내가 러스트 빠는 이유중에 하나가 클라우드 비용이었지 [3] 프갤러(211.234) 11.06 54 0
2900972 시체 못 찾아서 혹시햇더니 역시 살아잇엇음 ㅅㅂ ♥KiTTY냥덩♥갤로그로 이동합니다. 11.06 47 0
2900970 ㅇㅏ 진짜 개좃같네 모기 물렷다 ♥KiTTY냥덩♥갤로그로 이동합니다. 11.06 34 0
2900969 웅 시발 증거 찾았다. 스팟 인스턴스였네 [5] 프갤러(211.234) 11.06 47 0
2900968 OCR은 항상 의뢰가 올때마다 가격이 쎈데 성공률이 너무 낮음 [4] ㅆㅇㅆ(124.216) 11.06 62 0
2900967 OCR로 600만 짜리 받을까 말까 고민되노 [3] ㅆㅇㅆ(124.216) 11.06 45 0
2900966 ㅆㅇㅆ야 당장 통장에 돈 꽂힌다고 좋아하면 안돼 [4] ㅇㅇ(124.48) 11.06 72 1
2900961 듣자하니 프로덕션 배포를 스팟 인스턴스에 하는 병신들이 있는거 같던데 [1] 프갤러(223.38) 11.06 37 0
2900960 모기 한마리 후렷는데 시체 못 찾음.. ♥KiTTY냥덩♥갤로그로 이동합니다. 11.06 37 0
2900959 ㅆㅇㅆ야 노파심에 말하건데 [4] ㅇㅇ(124.48) 11.06 72 2
2900958 [AI와 에너지] 2번째 , 3번째 내용 프갤러(121.172) 11.06 14 0
2900957 오늘도 납품 한건 완료 10만 끝 ㅆㅇㅆ(124.216) 11.06 21 0
2900956 이 날씨에 모기약 존나 뿌려도 안 뒤지고 어디서 계속 니옴 ㅅㅂ [2] ♥KiTTY냥덩♥갤로그로 이동합니다. 11.06 60 0
2900955 아니 진심 모기 개미쳣음 여름에도 한번 못 본 새끼들이 ♥KiTTY냥덩♥갤로그로 이동합니다. 11.06 45 0
2900953 초봉5000중반 물경력 [4] 프갤러(112.157) 11.06 65 0
2900952 회사에서 국비출신 ai? 개발자 데려오려고 하는데 [3] 프갤러(222.108) 11.06 49 0
2900947 코드로 밥벌어먹기 어렵다 ㅆㅇㅆ(124.216) 11.06 28 0
2900946 코딩 독학하려는데 좋은 영상이나 강의 추천해줄 수 있나요 [1] 고사리(58.228) 11.06 43 0
2900944 이 세상은 도서관의 부분집합이다. 재현갤로그로 이동합니다. 11.06 20 0
2900943 vim이거 쓸 이유가 잇나여 [5] 르르곳사랑갤로그로 이동합니다. 11.06 55 0
2900942 싼게 비지떡이야. 값을 낮추지 말고 퀄리티만큼 받아라 [2] 프갤러(121.129) 11.06 30 0
2900940 감기 걸리면 기분 좋음? [2] ♥KiTTY냥덩♥갤로그로 이동합니다. 11.06 23 0
2900939 저장용 ♥KiTTY냥덩♥갤로그로 이동합니다. 11.06 27 0
2900938 표정 너무 무서웡 ㅠㅅ ㅠ ♥KiTTY냥덩♥갤로그로 이동합니다. 11.06 18 0
2900936 좌파 박지원 서해피격 은폐 관련 징역 구형 ♥KiTTY냥덩♥갤로그로 이동합니다. 11.06 16 0
2900935 웅.. ♥KiTTY냥덩♥갤로그로 이동합니다. 11.06 16 0
2900934 미쿡 뱅기 폭발한거 ㅇㅇ(223.39) 11.06 27 0
2900933 대학생이 프리랜서로 큰 건 따기는 어렵겠지? [1] ㅇㅇ(124.51) 11.06 41 0
2900932 나님 개피궁해서 애널은 일찍 씻준 할게양⭐+ ♥KiTTY냥덩♥갤로그로 이동합니다. 11.06 43 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2