ホームページ >データベース >mysql チュートリアル >結合を使用して Oracle テーブルを正しく更新し、ORA-00933 エラーを回避する方法
結合を使用した 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 中国語 Web サイトの他の関連記事を参照してください。