디시인사이드 갤러리

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

갤러리 본문 영역

야근도중 빡쳐서 아오

개발4년차갤로그로 이동합니다. 2011.12.27 21:57:57
조회 170 추천 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 - -
298141 HTML5 가 정식 릴리즈 된다면... [14] 캐js닭(115.92) 12.01.11 207 0
298140 개쉛기가 존나 말렸는데 기어코 고시원에 들어가서 생활중인데.. [5] 쿄스케갤로그로 이동합니다. 12.01.11 131 0
298139 내가아는 어떤형은 프로그래밍 해서 3주동안 500 벌던데;; [5] ㅇㅇ(175.211) 12.01.11 210 0
298138 여기 도시락 싸다니는 프게이들 있어? [7] □ㅁ갤로그로 이동합니다. 12.01.11 104 0
298137 실력보다는 마인드 인거 같다 [2] □ㅁ갤로그로 이동합니다. 12.01.11 97 0
298136 한국 프로그램의 현실 이거.. 사실이냐?... [5] ㅇㅇ(175.211) 12.01.11 212 0
298134 컴돌이 여러분은 경영학 복수전공 함? [3] 최선생갤로그로 이동합니다. 12.01.11 127 0
298133 개잡대 컴공 nhn 취직 [5] ㅇㅇ(175.211) 12.01.11 400 0
298132 여자가 자기를 좋아하는지 진짜 아는방법... [3] 군대지원(222.101) 12.01.11 195 0
298131 곽팀장 잘왔따!!!!!!!!!!!!!!!!!!!!!!!!!!!! 캐곽팀장닭(115.92) 12.01.11 60 0
298128 여자가 자기를 좋아하는지 안하는지 확인법 □ㅁ갤로그로 이동합니다. 12.01.11 72 0
298127 헐 타과 수업 들으면 향수냄새 진동하나요? 군대지원(222.101) 12.01.11 60 0
298126 Linux 우분투로 깔았는데 괜찮은 or 필수 소프트웨어 추천좀 해주세요 [4] 개허접(128.208) 12.01.11 174 1
298124 Mysql 계정 권한주는데 안되요 ㅠㅠ [2] 에휴(203.171) 12.01.11 61 0
298123 근데 내 오른쪽 눈만 시력이 안좋아진게 [2] elwlwlwk갤로그로 이동합니다. 12.01.11 139 0
298121 해피투게더 재방보는데 [1] ㅋㄱ(183.96) 12.01.11 72 0
298120 아오 이제 자야겠다~~ 오늘 너무 버닝했네 거칠게갤로그로 이동합니다. 12.01.11 72 0
298119 난 아직도 여자들의 내숭과 거절을 잘 구분 못하겠어 -_- [1] 거칠게갤로그로 이동합니다. 12.01.11 150 0
298118 진짜 여자들의 위장술은 조심해야 한다 [1] 거칠게갤로그로 이동합니다. 12.01.11 211 0
298115 아무리 날고 겨도 등장 임팩트는 SES가 최고지 [5] 야요이갤로그로 이동합니다. 12.01.11 95 0
298114 걸그룹 중 베스트 오브 베스트를 뽑아보자!! [7] 거칠게갤로그로 이동합니다. 12.01.11 106 0
298113 걸그룹의 최고봉을 결정하자!! [10] 거칠게갤로그로 이동합니다. 12.01.11 125 0
298112 내가 아는 걸그룹 목록 [24] 거칠게갤로그로 이동합니다. 12.01.11 161 0
298111 진짜, 좋아요.~~Good.// [1] 학교가자갤로그로 이동합니다. 12.01.11 40 0
298110 같은 과로 얘도 갠찬치안스믑니까/ [5] ㅋㄱ(183.96) 12.01.11 170 0
298108 진심은 통한다는 말 따윈 이제 믿지않는다. 진심(211.221) 12.01.11 78 0
298106 내 공부 로드맵인데 좀 봐주라 [4] 도와주십시오(59.26) 12.01.11 205 0
298105 잠이 안온다. [1] ssonacy갤로그로 이동합니다. 12.01.11 67 0
298103 오픈지엘 조명쏘는데염.. ㅋㄱ(183.96) 12.01.11 60 0
298102 기초 기초 하는데 기초가 뭐임? [11] 뀨잉뀨잉(211.221) 12.01.11 226 1
298098 RCE 어떨까 [4] lucy_han갤로그로 이동합니다. 12.01.11 57 0
298097 [IT취업고민 끝~ 한국산업단지,중앙일보hta 전원채용확정교육] [5] 채용담당(219.255) 12.01.11 139 0
298095 체감 연봉 5천.. [13] K(125.186) 12.01.11 235 0
298094 스크린샷 깨짐현상에 대해 질문드려요 [1] ㅜㅜ(203.250) 12.01.10 53 0
298093 구조체 클래스??? [14] ㅋㄱ(183.96) 12.01.10 117 0
298092 형들 나 모든 확장자가 실행이 안됨... [3] 유동닉(183.108) 12.01.10 55 0
298090 디시 검색기능 좀 병신같이 바뀌지 않았음? [4] ㅇㅇㅇ(121.144) 12.01.10 181 0
298089 존내 멋진 공뭔들의 프로그램 배포방식.... [3] ㅅㄱㅅㄱㅅㄱ갤로그로 이동합니다. 12.01.10 127 0
298088 오랜만이에여 [3] 풀개미'ㅅ'갤로그로 이동합니다. 12.01.10 58 0
298087 아 공부하기 싫다 [4] 퐈응퐈응갤로그로 이동합니다. 12.01.10 80 0
298086 jdk 7 path 설정 좀 도와주세요...솦갤 정전이에요 제발 ㅜㅜ [3] 늅늅이(180.227) 12.01.10 73 0
298085 대2 되는 컴공학생인데요 방학때 뭐 공부할만한것좀요.. [21] 질문좀요(121.167) 12.01.10 223 0
298084 빚 진 것 다 갚았다 [1] 이모군(175.114) 12.01.10 75 0
298083 안녕프겔 [5] 어떡해갤로그로 이동합니다. 12.01.10 104 0
298082 횽들~ 개발자들 업무복장은 어떻게되요? [4] ㅂㅈㄷㄱ(180.67) 12.01.10 143 0
298081 게임업계 포트폴리오 내는데 얼굴인식 시스템 만든거 내면 좆되나? ㅋㅋㅋㅋ [3] ㅁㄴㅇㄹ(59.30) 12.01.10 158 0
298077 포트폴리오 제출 어떻게 하나요? [4] ㅁㄴ(210.107) 12.01.10 101 0
298076 아까 올라온 글에 웹디가 있는거 같던데 KA-1(210.106) 12.01.10 47 0
298075 수능 수리나형 vs c언어 [1] ㅇㅇ(175.211) 12.01.10 119 0
298073 5군데 이력서 넣었는데..... [1] 퐈응퐈응갤로그로 이동합니다. 12.01.10 112 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2