0
別のテーブルからデータを取り込んで、一致するC、I値に合わせてTOCTASKを設定するスクリプトに3つの更新ステートメントがあります。1つの更新ステートメントでX個の更新ステートメントを結合する
TOCTASKが大きく、各ステートメントの実行に時間がかかる、私は思っていた。これは、Oracleデータベース上で実行されます
1つの全体の更新ステートメントに3文をcombindingの方法があります
更新ステートメントの例:
UPDATE TOCTASK
SET TOCTASK.COL1 =
(SELECT VM_TEMP_TOCTASK.COL1
FROM VM_TEMP_TOCTASK
WHERE VM_TEMP_TOCTASK.C = TOCTASK.C
AND VM_TEMP_TOCTASK.I = TOCTASK.I
);
UPDATE TOCTASK
SET TOCTASK.COL2 =
(SELECT VM_TEMP_TOCTASK.COL2
FROM VM_TEMP_TOCTASK
WHERE VM_TEMP_TOCTASK.C = TOCTASK.C
AND VM_TEMP_TOCTASK.I = TOCTASK.I
);
UPDATE TOCTASK
SET TOCTASK.COL3 =
(SELECT VM_TEMP_TOCTASK.COL3
FROM VM_TEMP_TOCTASK
WHERE VM_TEMP_TOCTASK.C = TOCTASK.C
AND VM_TEMP_TOCTASK.I = TOCTASK.I
);
は、すべてのヘルプは素晴らしいことだ
ちょうど、上記のコードを不思議。何が起こるでしょうか? – Jamiex304
@ Jamiex304。 。 。 'col2'が' NULL'だった場合、 'TOCTASK'では' NULL'に設定されます。 'col2'は一致条件の一部ではないので、行はまだ一致します。 –
フォローアップありがとう – Jamiex304