... der CS funktioniert nur, wenn Du über cursor liest, beim select into geht der in den Wind. Hauptproblem im DB2/400 sind eher die Deadlocks (das mit dem dirty read funktioniert eh nicht immer, wie man das will), weil die Sperrstufe zwischen read (mit Sperre) und write erhöht wird.
Bei updates ohne Konflikt Wahrscheinlichkeit ist das, was DB2/400 *ALL oder *RS nennt besser.
Bei Konflikt Wahrscheinlichkeit ist es am besten mit einem dummy update einzusteigen, dann lesen, dann fortschreiben.

D*B

PS: Die Krux fängt schon mit der idiotischen Benennung der Sperrstufen an:
NO COMMIT (NC, NONE)
READ UNCOMMITTED (UR, CHG)
READ COMMITTED (CS)
REPEATABLE READ (RS, ALL)
SERIALIZABLE (RR)