database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 40498 게시물 읽기
No. 40498
메뉴 권한 관련 CONNECT BY 사용방법 문의
작성자
관계
작성일
2014-06-18 13:34
조회수
12,232

업무 시스템에서 좀 변화가 있어서 수정 중입니다.

그런대 요청사항이 서브 메뉴를 지정하면 최상위 메뉴부터 서브메뉴 하위의 말단 메뉴까지 다 풀리게 해달라는건데요.

메뉴 테이블과 중분류 권한 설정 테이블이 있어서 중분류 권한 테이블에 중분류 메뉴 몇개만 지정해서 권한 테이블에 저장하겠다는 겁니다.

 

이런게 쿼리한번에 가능 할까요?

 

메뉴의 DEPTH가 5단일수도 있고 4단일수도 있고 등록해주는 중분류 메뉴가 2단일수도 있고 3단일수도 있다는 소린데...

전 일단 좀 건드려봤지만 좀 쉽지 않더라구요.

이 글에 대한 댓글이 총 2건 있습니다.

-- 4. 최종 최상위로부터 계층 전개
SELECT *
  FROM (-- 1. 계층 구조 역 전개하여 상위메뉴 가져오기
        SELECT cd, pcd
          FROM 메뉴
         START WITH cd IN (SELECT cd FROM 권한 WHERE 사용자 = :사용자)
         CONNECT BY cd = PRIOR p_cd
         UNION -- 3. 중복제거
        -- 2. 계층 구조 순 전개하여 하위메뉴 가져오기
        SELECT cd, pcd
          FROM 메뉴
         START WITH cd IN (SELECT cd FROM 권한 WHERE 사용자 = :사용자)
         CONNECT BY PRIOR cd = p_cd
        )
 START WITH pcd IS NULL
 CONNECT BY PRIOR cd = p_cd
;

마농(manon94)님이 2014-06-18 14:08에 작성한 댓글입니다.

마농님이 알려주신대로 하니까 잘되네요.

union 하면 순서가 깨지거나 해서 안했는데 저렇게 union 한다음에 다시 풀어주면 되는군요.

 

감사합니다.

관계님이 2014-06-18 14:50에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
40505오라클 복구 이런경우는 어떻게 해야하는지? 도와주세요...
조승식
2014-06-24
6991
40501SQL질문입니다. 몇일 고민하다가 올립니다. [2]
매일출근
2014-06-18
7373
40500마스킹처리 부탁드려요...ㅠㅠ [1]
도와주세요
2014-06-18
8160
40498메뉴 권한 관련 CONNECT BY 사용방법 문의 [2]
관계
2014-06-18
12232
40491오라클 9i에서 자바 aes256 class 호출시 문제점 질문
송영준
2014-06-17
10009
40490rollup [2]
엄성철
2014-06-16
7394
40489user type 생성후 insert후 select 시
장석현
2014-06-12
6765
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.025초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다