一方、DB2では、デフォルトのリードロックだけではほかのトランザクションからの更新を禁止するには十分ではありません。そこで、分離レベルを「繰返し可能読み取り」もしくは「直列可能」に変更する必要があります。これによって、検索結果行にはCOMMITあるいはROLLBACK時までロックをかけ、ほかのトランザクションからの更新を防ぎます。 排他制御が必要な場面でその都度、個々のSQL文にWITH句を用いて分離レベルを指定してください。例えば、上図3の場合は、以下のSQL文をカーソルオープン前に発行することで、レコードA~Dは、COMMITあるいはROLLBACK時までロックされた状態になります。