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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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!