2013-10-16 98 views
-1

我有源表和目標表。 兩個源表和目標表包含相同的列id,name,age,time從另一個表更新一個表數據

我對目標表更新源表

所以這個過程中,我已經嘗試了本query.but但這並沒有work.can請你告訴我什麼在這個查詢中是錯誤的?

UPDATE source 
SET source.name = target.name, 
     source.age = target.age, 
     source.time = target.time 
FROM target 
     INNER JOIN source 
       ON source.id = target.id; 
+0

「這個查詢有什麼問題?」告訴我們它有什麼問題,你會得到一個異常還是不正確的結果? –

+0

先生,當我運行該查詢,我得到這個錯誤>> ORA-00933:SQL命令未正確結束 – prem

+0

即使您使用sql-server,你會得到一個oracle錯誤? –

回答

0

我聽到的是當通過連接到另一個表更新表時,Oracle拋出此錯誤。嘗試使用子查詢這樣的事情

UPDATE source a 
SET a.name = (
       select b.SURNAME 
       from target b 
       where a.id = b.id 
      ) 
+0

我試過這個先生..它只能工作用於更新一列,但如何更新一個查詢中的所有列 – prem

+0

您是否嘗試過爲每列添加多個子查詢不知道,但它的值得嘗試。 –

+0

我確實嘗試過它,但它表示我們不能使用超過3個子查詢 – prem