Bonjour à tous !
Cela fait quelques jours que j’essaie de remettre sur pied une application. Malheureusement, certaines procédures et triggers me renvoient des erreurs alors qu'ils ne sont que l'extraction de triggers déjà présent sur d'autres serveurs étant fonctionnel !
C'est dans l'incompréhension et la frustration que je viens vous demander si mes triggers correspondants aux procédures sont corrects ou s'il y a une erreur de syntaxe...
Le serveur est un Oracle XE 10g.
Le trigger est sur une table de population qui va permettre l'insertion ou le check de données envoyées pour les dispatcher sur la base. L'utilisateur d'appel "acess".
Si quelqu'un passe par là,
Merci !
trigger :
create or replace TRIGGER ACESS.TESTING
BEFORE INSERT ON ACESS.MAJPOPULOUS
FOR EACH ROW
DECLARE
v_EXIGENCE VARCHAR2(80) := :new.id_exigence;
v_SEMAINE VARCHAR2(80) := 0;
v_CODAGE VARCHAR2(80) := :new.codage ;
v_TU VARCHAR2(80) := :new.tu ;
v_NATURE VARCHAR2(80) := :new.nature;
v_EXISTAN VARCHAR2(80) := :new.id_exigence;
BEGIN
--check la pré-existance de l'exigence associée
PREXISTANCE(
v_EXISTAN,
v_NATURE
);
--définit la semaine en cours
select MAX(semaine)+1 into v_SEMAINE
from avancement;
--insertion dans avancement_std
CHARGE(
v_EXIGENCE,
v_SEMAINE,
v_CODAGE,
v_TU
);
ACESS.UPALL();
END;
Procédure :
create or replace
PROCEDURE PREXISTANCE (
existan IN VARCHAR2
, nature IN VARCHAR2
) AS
tmpVar number;
BEGIN
tmpVar := 0;
SELECT COUNT(*) INTO tmpVar FROM Acess.Exigence_std WHERE id_exigence=existan;
IF tmpVar <= 0 THEN
insert into Acess.exigence_std (id_exigence,nature) values (existan,nature) ;
END IF;
END;