2
マージは、SQL%ROWCOUNTを使用してレコードを挿入または更新する方法に関係なく、マージされるレコードの数を常に示します。PLSQL:マージ文を使用したときに更新されたレコードの数を取得する
実際に挿入されたレコードの数と、実際に更新されたレコードの数を調べる方法。
私はこの記事からオプションを試してみましたが、これは動作していないよう - 任意の助けを
https://asktom.oracle.com/pls/asktom/f?p=100:11:0::NO::P11_QUESTION_ID:122741200346595110
?
どのような「オプション」を参照していますか? Tom Kyteは、そのスレッドでは、一般に、挿入、更新、削除された行数を単一の 'MERGE'文で区別する方法がないことを明白に述べています。マージされた行の数を見つけることができます。挿入された行と更新された行とを区別する方法はいくつか提案されていますが、それらはむしろ脆弱で、異なるクエリプランでは異なる動作をします。 –
私は参考にしていました - https://asktom.oracle.com/pls/asktom/f?p=100:11:0:::P11_QUESTION_ID:122741200346595110#125700900346637534 – jagamot
OK。 Tomが指摘するように、そのアプローチは非常に脆弱で、特定の計画に依存します。マージステートメントによって挿入、更新、および削除された行の数を分割する一般的な正しい方法はありません。マージされた行の数のみを決定できます。別の数字が必要な場合は、おそらく 'INSERT'と' UPDATE'文を別々にする必要があります。 –