Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/11/2011, 21h00   #1
Invité de passage
 
Inscription : juin 2007
Messages : 21
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 21
Points : 1
Points : 1
Par défaut GESTION EXCEPTION NO_DATA_FOUND

Citation:
begin

open CUR_COMMAND_STRING;
loop
fetch CUR_COMMAND_STRING into VAR_CUR_COMMAND_STRING;
exit when CUR_COMMAND_STRING%NOTFOUND;

select (LOG_MAJ_SIM_SEQ.NEXTVAL) into SEQ from dual;
IMSI_HLR:= 0;
SELECT '6607'||substr(SIM,-8) INTO IMSI FROM BASE
WHERE SUBSTR(MSISDN,-8)=VAR_CUR_COMMAND_STRING.BRS_PHONE_NUMBER;


IF IMSI_HLR <>0 or IMSI_HLR is not null THEN

IF VAR_CUR_COMMAND_STRING.BRS_SIM_NO <> IMSI_HLR THEN

UPDATE BIL.B_TOTO
SET BRS_X_NO=IMSI_HLR
WHERE ID =VAR_CUR_COMMAND_STRING.ID_SIM
;
INSERT INTO LOG_MAJ_SIM( ID,
ID_BRS_SIM,
MSISDN,
OLD_SIM_BRS_SIM,
--NEW_SIM_BRS_SIM,
SIM_HLR
) VALUES(SEQ,
VAR_CUR_COMMAND_STRING.ID_SIM,
VAR_CUR_COMMAND_STRING.BRS_PHONE_NUMBER,
VAR_CUR_COMMAND_STRING.BRS_SIM_NO,
IMSI_HLR
);
END IF;
END IF;

End loop;

Bonsoir à Tous,

Relativment au code ci-dessus,je voudrais pouvoir gerer les erreurs emanant du bout de code en rouge de sorte que si une erreur survient, la ligne suivante du curseur soit chargé et ainsi de suite. N'ayant pas une bonne maitrise des exceptions, merci de bien vouloir m'eclairer.
providence est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2011, 23h53   #2
Invité de passage
 
Inscription : juin 2007
Messages : 21
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 21
Points : 1
Points : 1
pense j'ai reussi à mieux cerner la notion d'EXCEPTION.
ci-après une solution à ma préoccupation

Citation:
begin

open CUR_COMMAND_STRING;
loop
fetch CUR_COMMAND_STRING into VAR_CUR_COMMAND_STRING;
exit when CUR_COMMAND_STRING%NOTFOUND;

select (LOG_MAJ_SIM_SEQ.NEXTVAL) into SEQ from dual;
IMSI_HLR:= 0;
SELECT '6607'||substr(SIM,-8) INTO IMSI FROM BASE
WHERE SUBSTR(MSISDN,-8)=VAR_CUR_COMMAND_STRING.BRS_PHONE_NUMBER;

IF IMSI <>0 or IMSI_HLR is not null THEN

IF VAR_CUR_COMMAND_STRING.BRS_SIM_NO <> IMSI_HLR THEN

UPDATE BIL.B_TOTO
SET BRS_X_NO=IMSI_HLR
WHERE ID =VAR_CUR_COMMAND_STRING.ID_SIM
;
INSERT INTO LOG_MAJ_SIM( ID,
ID_BRS_SIM,
MSISDN,
OLD_SIM_BRS_SIM,
--NEW_SIM_BRS_SIM,
SIM_HLR
) VALUES(SEQ,
VAR_CUR_COMMAND_STRING.ID_SIM,
VAR_CUR_COMMAND_STRING.BRS_PHONE_NUMBER,
VAR_CUR_COMMAND_STRING.BRS_SIM_NO,
IMSI_HLR
);
END IF;
END IF;

End loop;
CLOSE CUR_COMMAND_STRING;
EXCEPTION
WHEN NO_DATA_FOUND
IMSI :=0;
END;

END;
/
providence est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h32.


 
 
 
 
Partenaires

Hébergement Web