
Une erreur interne se produit quand un bloc PL/SQL viole une règle d'oracle ou dépasse une
limite dépendant du système d'exploitation. Oracle a prévu un ensemble d'erreurs prédéfinies
qui sont les suivantes :
120
Remarque : L'erreur NO_DATA_FOUND peut être générée par un SELECT INTO, un
UPDATE ou un DELETE.
DECLARE
code number;
msg varchar2(200);
recart article%ROWTYPE;
CURSOR curcli IS
SELECT * FROM client
FOR UPDATE OF adresse;
reccli client%ROWTYPE;
BEGIN
OPEN CURCLI;
LOOP
FETCH curcli INTO reccli;
EXIT WHEN curcli%NOTFOUND;
SELECT * INTO recart FROM article;
BEGIN
INSERT INTO client VALUES (reccli.idclient,
reccli.raisonsociale,
NULL, NULL, NULL, NULL, reccli.idrep);
EXCEPTION
WHEN DUP_VAL_ON_INDEX THEN
dbms_output.put_line('Attention doublon');
WHEN TOO_MANY_ROWS THEN
dbms_output.put_line('Passage trop de lignes');
WHEN OTHERS THEN
code:= SQLCODE;
msg:= SQLERRM(code);
dbms_output.put_line(to_char(code));
dbms_output.put_line(msg);
END;
END LOOP;
CLOSE curcli;
END;