使用聯接更新Oracle 表
目標是使用聯接更新表並遇到錯誤「ORA-00933: SQL 指令未正確結束。 ”
出現這種情況是因為提供的查詢在語法上不正確。查詢邏輯是計算由公共列連接的多個表的總計,並用計算出的總計更新原始表。
要解決此問題,我們建議使用 MERGE 語句,它提供了更明確的方式根據條件更新資料。 MERGE 語法更有效地與業務規則保持一致。
這是使用 MERGE 語句的修改後的查詢:
MERGE INTO table1 tab1 USING ( SELECT tab3.name, tab3."add", SUM(tab2.amount) AS total FROM table2 tab2, table3 tab3 , table4 tab4 WHERE tab2.id = tab3.id AND tab3.id = tab4.id AND tab4.indicator ='Y' GROUP BY tab3.name, tab3."add" ) t1 ON (tab1.id = t1.id) WHEN MATCHED THEN UPDATE SET tab1.total_adjusted_cost = tab1.total_adjusted_cost + t1.total;
此 MERGE 語句:
以上是如何使用聯結正確更新 Oracle 表並避免 ORA-00933 錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!