クエリに基づく更新
8i | 9i | 10g | 11g | 12c | 13c | 18c | 19c | 21c |その他| PL / SQL | SQL | RAC | WebLogic | Linux
ホーム “記事”その他 “ここ
この記事では、別のテーブルのデータを使用してテーブルを更新する方法について説明します。
- セットアップ
- サブクエリメソッド
- インラインビューメソッド
- MERGEステートメントメソッド
関連記事。
- MERGEステートメント
セットアップ
DEST_TAB
テーブルには10,000行が含まれています。SOURCE_TAB
テーブルには5,000行が含まれ、各行にはDEST_TAB
テーブルの行と一致するキー値がありますが、列とDESCRIPTION
列。
この時点では、DESCRIPTION
DEST_TAB
テーブルのdiv>列に「更新済み」という単語が含まれています。
SELECT COUNT(*)FROM dest_tabWHERE description LIKE "Updated%"; COUNT(*)---------- 0SQL>
目的は、 DEST_TAB
テーブルの行とSOURCE_TAB
テーブルのデータ。
サブクエリメソッド
T最初のオプションは、サブクエリを使用してDEST_TAB
テーブルを更新し、SOURCE_TAB
テーブルから正しいデータをプルすることです。 EXISTS
述語が、SOURCE_TAB
divに一致する行がないDEST_TAB
テーブルから行を除外していることに注意してください。 >テーブル。これがないと、一致しない行の値がNULLに設定されます。
現在のデータボリュームの実行プランを以下に示します。
ワークロードが十分に大きく、サーバーが余分なワークロードに対処するには、PARALLEL
ヒントを使用してこれを並行して実行できます。
インラインビューメソッド
2番目のオプション2つのテーブルをインラインビューとして結合し、それに基づいて更新を行うことです。
現在のデータボリュームの実行プランを以下に示します。
ワークロードが十分に大きく、サーバーは余分なワークロードに対処できます。PARALLEL
ヒントを使用して、これを並行して実行できます。
更新される行数は、追加することで変更できます。インラインビューまたはメイン更新ステートメントのいずれかにWHERE
句を追加します。
- MERGEステートメント
これを希望します役立ちます。よろしくティム…
トップに戻る。