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

Si mon contenu vous plait et que vous souhaitez suivre mes publications, je vous invite à entrer votre email ci-dessous (vous recevrez un email de ma part à chaque nouvelle publication) :




Pour toutes questions vous pouvez me contacter par mail ou via l’onglet “Contact” en haut du site.

Merci !