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:
Après execution j'ai ce message d'erreur:
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;
j'ai passé tout le week end la dessus!
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
Merci pour votre aide d'avance!![]()
Partager