Conception Et Réalisation (Oracle) by Grare Stéphane - HTML preview

PLEASE NOTE: This is an HTML preview only and some elements such as links or page numbers may be incorrect.
Download the book in PDF, ePub, Kindle for a complete version.

Exceptions internes

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

index-121_1.png

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;