[PL/SQL][CURSEUR]invalid ROWID!!!
Bonjour tous !
j'ai des pbs avec des curseurs! j'explique: j'essaie de mettre à jour les valeurs d'une table avec les valeurs recuperées d'une autre autre table alors pour cela je fais comme suit:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
CREATE OR REPLACE PROCEDURE UPDATE_BILL
IS
TYPE CALL_REC IS RECORD(id NUMBER,msis CHAR(20),tp CHAR(3), mnt NUMBER);
call CALL_REC;
mont NUMBER;
CURSOR c1 IS SELECT ID,MSISDN,TYPE,MONTANT FROM CALL_I20050801RESUME;
CURSOR c2(id IN CALL_I20050801RESUME.ID%TYPE, msi IN CALL_I20050801RESUME.MSISDN%TYPE,
typ IN CALL_I20050801RESUME.TYPE%TYPE)IS
SELECT CHARGE FROM BILL_I20050801 WHERE SUBSCRIBER_ID=id AND TRIM(HANDSET)=TRIM(msi)
AND TRIM(CHASERV)=TRIM(typ) FOR UPDATE;
BEGIN
OPEN c1;
LOOP
FETCH c1 INTO call;
EXIT WHEN c1%NOTFOUND;
OPEN c2(call.id,call.msis,call.tp);
FETCH c2 INTO mont;
UPDATE BILL_I20050801 SET CHARGE=call.mnt WHERE CURRENT OF C2;
CLOSE c2;
END LOOP;
CLOSE c1;
END; |
Après execution j'ai ce message d'erreur:
Code:
1 2 3 4 5
|
ERREUR à la ligne 1 :
ORA-01410: invalid ROWID
ORA-06512: at "UPDATE_BILL", line 20
ORA-06512: at line 1 |
j'ai passé tout le week end la dessus!
Merci pour votre aide d'avance! :(