2011-04-24 10 views
2

我正在比較2個結果集,並且我必須根據另一箇中的數據更新一個結果集。我可以使用updateRow(或insertrow,如果需要)輕鬆完成此操作。但是我也需要生成sql查詢(最好使用oracle語法)並添加到一個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語句來代替,如果新的數據尚未存儲在一個表中正確格式。

如果這不是你要找的,你能否澄清你的意思(當前數據和期望的輸出的例子將是理想的)。