'ORACE 프로시저 사용'에 해당되는 글 1건

  1. 2010.01.29 ORACE 프로시저 사용

 /*****************************************************************************
  * 1.SP명: 우편번호테이블에서 시도,구군,읍면동 리스트 가져오기
  * 2.작성일: 2010-01-01
  * 3.작성자: 김종문
  * 4.INPUT PARAMETERS
  *       I_ZIPCODE : 우편번호
  * 5.OUTPUT PARAMETERS :
  *       레코드셋
  *       1)I_KIND: 검색 구분 1:시도, 2:구군, 3:읍동
  *       2)I_NAME: 검색 명 I_KIND=1:null,I_KIND=2:시도명,I_KIND=3:시도||' '구군,
  *       5)O_RESULT : 0=성공, 그외SQLERRORCODE=실패
  *****************************************************************************/

주석샘플


  PROCEDURE SP_LIST_ZIPCODE (I_KIND IN NUMBER, I_NAME IN VARCHAR2,
                          C OUT RC, O_RESULT OUT NUMBER)
  AS
  BEGIN

    IF I_KIND = 1 THEN

      OPEN C FOR
      SELECT DISTINCT SIDO AS List
      FROM WYE_POST  ;

    ELSIF I_KIND = 2 THEN

      OPEN C FOR
      SELECT DISTINCT GUGUN AS List
      FROM WYE_POST
      WHERE SIDO = I_NAME ;

    ELSIF I_KIND = 3 THEN

      OPEN C FOR
      SELECT DISTINCT DONG AS List
      FROM WYE_POST
      WHERE SIDO||' '||GUGUN = I_NAME ;

    END IF;

    O_RESULT := 0; --성공

  EXCEPTION
    WHEN OTHERS THEN
      O_RESULT := SQLCODE ; -- 실패

  END SP_LIST_SIDOGUGUNDONG;


위에꺼 보다는
    SELECT YK.KINDERGARTEN_NO
           ,YK.KINDERGARTEN_NAME
           ,YK.ZIP_CODE
           ,YK.SIDO
           ,YK.GUGUN
           ,YK.DONG
      FROM YRCUSTOMER.YRC_KINDERGARTEN YK
      WHERE (:I_GUBUN = 1 ) -- 전체보기
        OR (:I_GUBUN = 2 AND YK.SIDO  LIKE :I_SEARCH||'%' ) -- GUBUN : 시도  선택(2)
       OR (:I_GUBUN = 3 AND YK.GUGUN LIKE :I_SEARCH||'%' ) -- GUBUN : 구/군 선택(3)
       OR (:I_GUBUN = 4 AND YK.DONG  LIKE :I_SEARCH||'%' ) -- GUBUN : 동    선택(4)
      ;
이렇게 하는게 좀더 짧게~

OR로 묶는게 얼마나 속도 차이가 있을지는 모르겠음.

Posted by [czar]
,