2011-04-24 1 views
2

2 개의 결과 집합을 비교 중이며 하나의 결과 집합을 다른 집합의 데이터에 따라 업데이트해야합니다. updateRow (또는 필요한 경우 insertrow)를 사용하면 쉽게이 작업을 수행 할 수 있습니다. 그러나 나는 또한 SQL 쿼리 (오라클 구문을 사용하는 것이 바람직 함)를 생성하고 SQL 파일에 추가해야하는데,이 파일은 나중에이를 업데이트 할 수있는 옵션을 제공한다. 누구든지이 일을하는 우아한 방법을 말할 수 있습니까?결과 집합에서 Java의 sql 쿼리로 변경 한 내용을 변환하는 방법은 무엇입니까?

답변

0

정확히 무엇을 하려는지는 모르겠지만 다른 테이블의 데이터로 한 테이블을 업데이트하거나 누락 된 데이터를 두 번째 테이블에 삽입 할 때 첫 번째 테이블에 누락 된 데이터를 삽입하려고합니다. 이 작업을 수행하는 가장 쉬운 방법은 병합을 사용하는 것입니다 :

merge into t1 
using t2 
on (t2.id = t1.id) 
when matched 
then 
    update 
    set t1.col1 = t2.col1, 
     t1.col2 = t2.col2, 
     t1.col3 = t2.col3 
when not matched 
then 
    insert 
    (t1.id, t1.col1, t1.col2, t1.col3) 
    values 
    (t2.id, t2.col1, t2.col2, t2.col3); 
T2 새 데이터가 이미 올바른의 테이블에 저장되어 있지 않은 경우, SELECT 문으로 대체 될 수 있음을 주목해야한다

체재.

이것이 원하는 것이 아니라면, 현재의 데이터와 원하는 결과가 이상적이라는 것을 의미하는지 확인하십시오.