bonjour,
je me permets de flooder dans ce poste parce que j'ai réutilisé le code de SheikYerbouti, mais j'ai un petit souci...pas trés grave, c'est juste mon deuxième trigger et je maitrise pa trop bien la chose encore ![:oops:](https://www.developpez.net/forums/images/smilies/icon_redface.gif)
donc en suivant le code ci-dessus, j'ai fait un petit trigger de test :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| CREATE OR REPLACE TRIGGER insertLesLogements
BEFORE INSERT ON LesLogements
FOR EACH ROW
DECLARE
nomBat VARCHAR(20) := :NEW.nomBat;
nbBat INTEGER := 0;
nombreBat sys_refcursor;
req VARCHAR2(1000) ;
BEGIN
/** ouverture du tampon */
DBMS_OUTPUT.ENABLE( 1000000 ) ;
/** récupération de la forme de l'épreuve */
req := 'SELECT COUNT(nomBat) FROM LesBatiments WHERE nomBat='||nomBat;
DBMS_OUTPUT.PUT_LINE(req);
OPEN nombreBat FOR req;
FETCH nombreBat INTO nbBat;
CLOSE nombreBat;
DBMS_OUTPUT.PUT_LINE('nombre de batiments : ' || nbBat);
/**IF nbBat <> 1 THEN
RAISE_APPLICATION_ERROR(-20000,'Leslogements;01');
ROLLBACK;
END IF; */
END;
/ |
en testant cette commande :
INSERT INTO LesLogements values(8, 'Gaughin', 5);
le systeme me renvoi l'erreur suivante :
1 2 3 4
| ERROR at line 1:
ORA-00904: "GAUGHIN": invalid identifier
ORA-06512: at "BONNEFYA.INSERTLESLOGEMENTS", line 12
ORA-04088: error during execution of trigger 'BONNEFYA.INSERTLESLOGEMENTS' |
je pense que l'erreur vient du fait qu'il ni a plus de ' ' autour de mon nom de batiment alors que le systeme s'attend à une chaine
comment puis-je rajouter ces ' ' ?
Partager