Bonjour à tous,
Les Triggers de lignes ne permettent pas de gérer toutes les contraintes de certains schémas relationnels car dans un Trigger de ligne il est impossible de requeter la table en cours de modification, il faut alors introduire le concept de Trigger de table ainsi que celui de Curseur.
Structure Curseur :
DECLARE --Dans un Trigger
Cursor nomCurseur IS
SELECT …
;
...
Concaténation PL / SQL :
RAISE_APPLICATION_ERROR (-20001, “L’agence “ || variable || “pose problème”);
Parcourir un Curseur :
BEGIN
OPEN nomCurseur;
LOOP
FETCH nomCurseur INTO tuple;
EXIT WHEN nomCurseur%NOTFOUND;
DBMS_OUT.PUT_LINE ( “ … “ ) ;
pb := pb + 1 ;
END LOOP ;
IF ( pb > 0) THEN
RAISE_APPLICATION_ERROR ( -20000, “ … “ ) ;
END IF;
END;
OU (plus simple, à préférer)
BEGIN
FOR tuple IN nomCurseur
LOOP
DBMS_OUTPUT.PUT_LINE ( “ … “ ) ;
END LOOP;
Si vous pensez que cette série d’articles peut intéresser d’autres personnes,vous pouvez partager cet article sur les réseaux sociaux et par mail à vos amis.
Pour toutes questions vous pouvez me contacter par mail ou via l’onglet “Contact” en haut du site.
Merci !