'Job'에 해당되는 글 12건
- 2009.02.05 제 10회 자바 개발자 컨퍼런스 1
- 2009.02.03 XQuery의 Join
A라는 List타입의 $value라는 놈에서 value의 특정 element의 data가
또 다른 특정 data와 일치하는지의 여부를 비교하여 다른 결과값을 리턴해주는
로직을 구현하려 한다. 일반적인 java코딩에서는 for문을 돌아 조건이 맞을때
결과값을 리턴해주거나 변수에 값을 할당하고 break을 걸어주면 되는 간단한 이 로직이
Xquery로 했을경우 너무 삽질을 많이 했다.
BEA에서 Xquery pdf를 내려받아보니 이런 부분을 발견.
left branch의 CUSTOMER()만큼 반복하며($customer란놈으로 assign)
다시 right branch의 CUST_ORDER() 만큼 반복하며($c_order란놈으로 assign)
customer의 CUSTOMER_ID와 c_order의 CUSTOMER_ID가 동일할경우
customer의 LAST_NAME element와 c_order의 ORDER_ID element를 리턴해주는 Xquery.
for $customer in CUSTOMER() // LEFT Branch
for $c_order in CUST_ORDER() // RIGHT Branch
where $customer/CUSTOMER_ID eq $c_order/CUSTOMER_ID
return <t>{$customer/LAST_NAME, $c_order/ORDER_ID}</t>
이놈을 보니 아..대충 답이 나오는구나.
대충 응용을 해보니..
for $return_value in
($getUKeySubscribedValueAddedSvcListResponse1/ns2:return/ns3:value)
return
if ($return_value/ns3:prod_id = data
($checkSubscribedValueAddedSvc1/ns2:inVO/ns0:PROD_ID)) then ("Y")
else ("N")
내가 원하는 Branch의 값을 $return_value로 정의를 하고 반복을 하면서
해당 value의 PROD_ID값과 입력받은 파라미터의 prod_id와 비교하여 값이 같을경우
Y를 리턴. 다를경우 N를 리턴하게끔 하였다.
XQuery에는 break가 없는건가...하며 한동안 삽질하였던;;