[oracle]오라클 ibatis iterate conjunction
오랜만에 DB 쿼리 관련포스팅을 해보겠습니다.
다음과 같은 상황이 있습니다.
사용자의 목록을 뿌려주고 있는데요 ~
여기서 권한 별로 조건을 주어 검색하려고 합니다.
그러나 남, 여 하나하나씩은
usr_gen = #sh_usr_gen# 같은 형식으로 하면 되지만
'일반', '매니저' 두 조건은 어떻게 줘야 할까요?????
먼저 결과 화면을 확인해 보겠습니다.
저는 이와같은 결과를 얻기위해 열심히 검색했습니다.
제가 select 조건을 보시면
</isNotEmpty>
<isNotEmpty property="sh_usr_athList" prepend="and">
<iterate property="sh_usr_athList" open="(" close=")" conjunction="or">
usr_auth_cd = #sh_usr_athList[]#
</iterate>
</isNotEmpty>
sh_usr_athList는 배열변수 입니다.
이렇게 주었는데요
이제 의문이 iterate, open, close, conjunction의 의미를 파악하셔야 합니다.
iterate
- 해당객체가 종료될때까지 반복 됩니다.
conjunction
- iterate가 종료되면 그 뒤에 추가할 식을 입력합니다.
open과 close는 아래의 쿼리를 보며 이해하시면 편하실겁니다.
검색조건을 선택하고 로직을 수행한 결과 입력된 쿼리는
SELECT * FROM xxx where ( usr_auth_cd = ? or usr_auth_cd = ? or usr_auth_cd = ? )
입니다.
앞뒤로 괄호가 붙은걸 확인하실수 있습니다.
'개발 > DB' 카테고리의 다른 글
[oracle]오라클 함수(function) 생성 및 실행 (4) | 2016.05.18 |
---|---|
[oracle]오라클 정규식 REGEXP_LIKE (0) | 2016.05.07 |
[oracle] 정규식 REGEXP_REPLACE 함수 (6) | 2016.05.04 |
[oracle]오라클 최대값의 다른 컬럼 구하기 (0) | 2016.04.25 |
[oracle] 정규식REGEXP_INSTR 함수 (0) | 2016.04.09 |
[sql]쿼리 dml, ddl, dcl 등 (0) | 2016.04.08 |
[oracle] 표현식 (0) | 2016.04.07 |