hmk run dev
PL/SQL 계층형 테이블에서 부모 카테고리 번호 구하기 본문
계층형 카테고리를 구현하기 위해 만들어놓은 column을 이용해
해당 카테고리의 가장 상위 카테고리번호를 알수 있는 PL/SQL함수를 구현해 보았다.
부모 카테고리 컬럼 - category_no
자식 카테고리 컬럼 - p_category_no
CREATE FUNCTION `f_get_category_new_parent`(idx bigint) RETURNS bigint(20)
BEGIN
DECLARE _id bigint; // 변수 선언
DECLARE _p_category_no bigint; // 자식 카테고리 번호
DECLARE _category_no bigint; // 부모 카테고리 번호
SET _id = idx; // 파라미터로 받은 변수 _id에 할당
IF _id IS NULL THEN // null 값 예외 조건
RETURN NULL;
END IF;
LOOP
select p_category_no, category_no
into _p_category_no, _category_no
from w_category_new where category_no = _id; // 인자로 받은 카테고리 테이블 선택
IF _p_category_no = 0 THEN // 자식 카테고리번호 = 0 >> 최상위 부모카테고리
SET _id := _p_category_no; // 자식카테고리가 0일때 까지 _id에 할당
RETURN _category_no; // 부모 카테고리 번호 return
END IF;
SET _id := _p_category_no; 자식카테고리가 0일때 까지 _id에 할당
END LOOP;
END
디버깅 할 방법도 없고 아직 PL/SQL 문법은 너무 헷갈린다.. ㅠ
물론 충분히 JAVA로 구현 할 수 있지만
애플리케이션 서버 측에서 수행되는 것이 아니라 데이터베이스 엔진 쪽에서 수행된다는 점과
데이터와 가장 가까운 곳에 위치하고 있으므로 애플리케이션 서버로 데이터를 주고 받는 데 따르는 네트워크 트래픽이 최소화된다는 장점이 있다 그리고 속도 측면에서도 좋은 이점이 있는 것 같다!
'기타' 카테고리의 다른 글
이니시스 모바일 결제 개발하기 (0) | 2022.03.16 |
---|---|
ajax + 개발자 도구로 크롤링하기 (0) | 2021.12.10 |
SPA 어플리케이션과 SSR프레임워크 & 코드스플리팅 (0) | 2021.12.07 |
이니시스 & 아임포트 결제 연동 (0) | 2021.11.11 |
Comments