2011-10-31 2 views
0

Oracle Adf의 ViewObject를 통해 두 개의 쿼리 중 하나를 실행해야합니다. 그룹 코드를 입력 할 수도 있고 입력하지 않을 수도있는 조건을 기반으로합니다. 첫 번째 쿼리는 사용자가 매개 변수를 입력하지 않을 때 시나리오를 처리하고 두 번째 쿼리는 사용자가 그룹 코드를 입력 할 때 시나리오를 처리합니다. 사용자가 매개 변수를 입력했는지 여부에 따라 다음 쿼리를 실행해야합니다. 하나의 View Object 만 사용하게 될 것입니다. (: GroupCode1 : GroupCode2 : GroupCode3 : GroupCode4 : GroupCode5 : GroupCode6 : GroupCode7) AND IIMOracle 10g의 조건을 기반으로 두 개의 쿼리 중 하나를 실행하는 방법은 무엇입니까?

1.SELECT IIM.index_num , IIM.description FROM IIM IIM.group_cd IN inv_item_mst .generic_cd LIKE NVL (: generic_cd_param, '%') AND IIM.supplier_cd LIKE NVL (: supplier_cd_param, '%') WHERE IIM IIM inv_item_mst FROM

2.SELECT IIM.index_num , IIM.description . group_cd = : groupCd

+0

: groupCd 값 존재 : 당신은 이 경우 단지 검사 WHERE 절에 OR 조건으로 문을 결합하여 같은 테이블에서 같은 열을 선택하는? – GolezTrol

+0

첫 번째 쿼리의 출력이 응용 프로그램에서 처리되기 때문에 하나의 뷰 개체 여야합니다. 즉, GroupCode1 ... GroupCode7은 사용자 로그인에서 값을 가져 오는 jhs 매개 변수입니다. 이제 7 가지 가능한 그룹 코드가 있으며 사용자 A는 그룹 1, 2 및 3에 액세스 할 수 있습니다. 따라서 그는 1, 2 및 3 중에서 선택할 수 있으며 임의로 선택할 수 있습니다. 이 선택에 따라 두 번째 쿼리가 실행되어야하며 입력 된 그룹에만 색인 번호가 포함되어야합니다. –

답변

1

왜 하나의 뷰 객체를 사용하는 것입니다

SELECT IIM.index_num, IIM.description 
FROM inv_item_mst IIM 
WHERE (:groupCd IS NOT NULL AND IIM.group_cd =:groupCd) 
OR (:groupCd IS NULL AND 
    IIM.group_cd IN (:GroupCode1,:GroupCode2,:GroupCode3,:GroupCode4,:GroupCode5,:GroupCode6,:GroupCode7) 
    AND IIM.generic_cd LIKE NVL(:generic_cd_param,'%') 
    AND IIM.supplier_cd LIKE NVL(:supplier_cd_param,'%') 
    ) 
+0

정말 고마워요. 완전한 –

관련 문제