디시인사이드 갤러리

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

갤러리 본문 영역

야근도중 빡쳐서 아오

개발4년차갤로그로 이동합니다. 2011.12.27 21:57:57
조회 171 추천 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/17 - -
AD 겨울가전 SALE! 쿨한 겨울 HOT세일 운영자 25/11/12 - -
297533 미겔에서는 올해가 지구 종말의 해라고 한다. [3] 거칠게갤로그로 이동합니다. 12.01.06 99 0
297530 어제 미겔에서 본 글이 있는데 조금 무섭다. [4] 거칠게갤로그로 이동합니다. 12.01.06 148 0
297529 mfc관련 질문좀용~ [1] 입문자자자자(117.55) 12.01.06 63 0
297528 횽들은 프로그래밍 공부할 때 실망한적 없어??? [2] 거칠게갤로그로 이동합니다. 12.01.06 177 0
297527 니들 별찍기 TMP로는 못짜냐? [5] 1(121.182) 12.01.06 89 0
297525 후........... 제이쿼리가 DB인줄 알았다....... [5] 거칠게갤로그로 이동합니다. 12.01.06 153 0
297524 Struts2 질문좀..ㅜ.ㅜ [2] 늅뉴비(203.253) 12.01.06 84 0
297523 미적분은 다시 쳐다볼일 없을줄 알았는데 영상처리땜에 다시 수학책 펼치넴. [10] ㅇㅇㅇ(116.121) 12.01.06 206 0
297522 리눅스 배우면 뭐가 좋아요? [4] 기린(68.146) 12.01.06 118 0
297521 웹프로그래밍 독학 테크트리 추천좀해주세요~~! [13] 웹프로그래밍(112.146) 12.01.06 258 0
297520 짤방 잘 보이냐? [3] iljeomobolt갤로그로 이동합니다. 12.01.06 105 0
297519 자바 컴포넌트 배치가 넘 짜증난다 [1] 플래닛댄스갤로그로 이동합니다. 12.01.06 72 0
297515 역시나 명불허전 홍팍놈들 ㅋㅋㅋㅋ [15] 야요이갤로그로 이동합니다. 12.01.06 159 0
297514 컴퓨터 쫌만해도 머리띵하고 울렁거리는데 해결법점. [10] ㄹㄷㅇㄴ(175.196) 12.01.06 176 0
297513 전문가님들 ~! 프로그래밍기술의 가치에 대해서 알려주세요~~! [7] 홀맨(112.146) 12.01.06 152 0
297512 늙어 보인다고 절망하지마라 [1] 아스트라로테갤로그로 이동합니다. 12.01.06 107 0
297511 입력받은 정수를 역순으로 출력하는 알고리즘!! [20] ㄶㅎ(59.24) 12.01.06 288 0
297510 그 짝에 나오는 프로그래머 [3] 스콜이후(180.70) 12.01.06 181 0
297509 난 NHN 에 입사하고 싶어영 'ㅂ';;; [12] ፨백왕፨갤로그로 이동합니다. 12.01.06 304 0
297508 횽들은 25살에머햇엉? [6] 싴보이갤로그로 이동합니다. 12.01.06 177 0
297507 아 시발 박원순한티 뒤통수 맞은 기분 [11] 개심심(61.73) 12.01.06 189 1
297506 여긴 가면 안되냐? 평가좀(211.246) 12.01.06 45 0
297505 대기업에서 개발자로 스카웃 하면 갈래?? [5] ㅇㅇㅇ갤로그로 이동합니다. 12.01.06 183 0
297504 프갤 횽들 이거 왜 오류 남? [6] 1(118.220) 12.01.06 92 0
297503 형들 혹시 회사돈을 개인명의로 받아본 형들 있어? [11] 수상한김토끼갤로그로 이동합니다. 12.01.06 157 0
297502 성과금나왔네 [1] madcat_mk2갤로그로 이동합니다. 12.01.06 102 0
297501 님들도 lynda.com 쓰샘? 자바갤로그로 이동합니다. 12.01.06 98 0
297500 이거 누구 잘못인지?? 갤레기 질문점ㅇㅇ [3] ㅇㅇㅇ갤로그로 이동합니다. 12.01.06 85 0
297499 일을할때 궁금한점이있어요 [4] makise갤로그로 이동합니다. 12.01.06 81 0
297498 지갑잃어버렸는데 주운 색히가 카드 조낸 긁어대네요.... [3] 추상화갤로그로 이동합니다. 12.01.06 192 0
297497 무조건 칼퇴근하는 직원 [4] horajjang(203.226) 12.01.06 203 0
297496 프로그래머 신입의 연봉은 중요한걸까? [7] +어게인갤로그로 이동합니다. 12.01.06 206 0
297495 아 c언어 과외 시작했는데 [4] Adelposs갤로그로 이동합니다. 12.01.06 271 0
297494 소스코드하이라이팅 이정도면 어때요 괜찬나여? [7] 일광면(119.198) 12.01.06 147 0
297493 =!랑 !=랑 어떻게 다른거야? [4] 헤헤(61.80) 12.01.06 146 0
297491 형들 방학해서 과제글도 안올라오고 심심하지? [9] HeHe(61.80) 12.01.06 171 0
297490 c 첨배우는데 질문함 ㄷㄷ(222.116) 12.01.06 64 0
297488 ㅈ같진않은데 슬픕니다. 답답합니다.( [10] 조코랭슐리(211.246) 12.01.06 135 0
297487 자바에서 상속이랑, 메소드호출이랑 뭐가다름? [12] 1111(121.129) 12.01.06 213 0
297486 여기 연봉 5000넘는 사람 있음??? [10] DDSFSD(125.182) 12.01.06 331 0
297484 프갤이 현역에서 뛰는분들 많기고하고 해서 그런데 [5] lucy_han갤로그로 이동합니다. 12.01.06 130 0
297483 횽들 나 투잡 뛸 생각이야... [4] ㅇㅇㅇ(221.147) 12.01.06 122 0
297480 한빛에서 Flex 수강했었는데 썰풀어봄. [6] 영어쓰던남자갤로그로 이동합니다. 12.01.06 158 0
297479 근데 학원을 왜 안좋게 보는거임?? [11] 늅늅이(121.129) 12.01.06 261 0
297478 개발자 커뮤니티는 있는데 보안커뮤니티는.. [2] pterosaur갤로그로 이동합니다. 12.01.06 96 0
297476 안드로이드 개발 공부하려는데 괜찮은 책 추천좀 ㅎㅎ(222.112) 12.01.06 62 0
297475 자바, 신입들어가면 뭐부터배움?(실무자분들 꼭줌 알려주세요!!) [1] 늅늅이(121.129) 12.01.06 89 0
297474 요즘 프갤말이야 [1] C_Perl갤로그로 이동합니다. 12.01.06 69 0
297473 음 톰캣 sever.xml 만지고있는데 질문드려요. [1] 어떡해(203.171) 12.01.06 113 0
297472 내가 프로그래밍쪽으로 진로를 잡은이유.txt [7] 코드토리갤로그로 이동합니다. 12.01.06 186 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2