WolfgangD
22-11-07, 17:13
Folgendes Problem:
Ich will in einer Schleife die Anzahl der geänderten Sätze summieren und habe dazu definiert:
.
.
.
6 DECLARE ANZ INTEGER;
7 DECLARE G_ANZ INTEGER;
.
.
12 DECLARE C2 CURSOR FOR SELECT F_RTGN FROM T_RTGN;
.
.
39 SET ANZ = 0;
40 OPEN C2;
41 FETCH_LOOP2 : LOOP
42 FETCH C2 INTO RTGN;
43 IF AT_END <> 0
44 THEN
45 LEAVE FETCH_LOOP2;
46 END IF;
.
.
54 UPDATE RTSPFASWT SET TNOCRW = '1434093' WHERE RTGNRW = RTGN AND TNOCRW = '1434025';
55 GET DIAGNOSTICS ANZ = ROW_COUNT;
56 SET G_ANZ = ( G_ANZ + ANZ );
.
.
66 END LOOP;
Das Problem - für mich - besteht jetzt darin,
- dass zwar im Statement 56 die Variable ANZ z.B. den Wert '4' hat
- aber im Statement 57 die Variable G_ANZ immer den Wert 0 behält
Die Schleife funktioniert, das Update funktioniert, nur die Variable G_ANZ behält immer den Wert 0!
Was ist da schon wieder faul?
Ich will in einer Schleife die Anzahl der geänderten Sätze summieren und habe dazu definiert:
.
.
.
6 DECLARE ANZ INTEGER;
7 DECLARE G_ANZ INTEGER;
.
.
12 DECLARE C2 CURSOR FOR SELECT F_RTGN FROM T_RTGN;
.
.
39 SET ANZ = 0;
40 OPEN C2;
41 FETCH_LOOP2 : LOOP
42 FETCH C2 INTO RTGN;
43 IF AT_END <> 0
44 THEN
45 LEAVE FETCH_LOOP2;
46 END IF;
.
.
54 UPDATE RTSPFASWT SET TNOCRW = '1434093' WHERE RTGNRW = RTGN AND TNOCRW = '1434025';
55 GET DIAGNOSTICS ANZ = ROW_COUNT;
56 SET G_ANZ = ( G_ANZ + ANZ );
.
.
66 END LOOP;
Das Problem - für mich - besteht jetzt darin,
- dass zwar im Statement 56 die Variable ANZ z.B. den Wert '4' hat
- aber im Statement 57 die Variable G_ANZ immer den Wert 0 behält
Die Schleife funktioniert, das Update funktioniert, nur die Variable G_ANZ behält immer den Wert 0!
Was ist da schon wieder faul?