Salut à tous j'ai besoin d'aide. En fait je voudrais créer un déclencheur qui me permettra de récupérer l'utilisateur connecté, la date et l'heure ainsi que la tâche qu'il a effectué dans un tableau pour leurs stocké dans un autre tableau.
Salut à tous j'ai besoin d'aide. En fait je voudrais créer un déclencheur qui me permettra de récupérer l'utilisateur connecté, la date et l'heure ainsi que la tâche qu'il a effectué dans un tableau pour leurs stocké dans un autre tableau.
Et qu'avez vous codé pour le moment ?
A quel endroit vous bloquez ?
SQL> create or replace trigger t_archive after delete 2 ON depts For each Row 3 Begin 4 insert into archive( 5 numdept, nomdept, zone, utilisateur, date_util, evenement) 6 values(:old.numdept, :old.nomdept, old.zone, user, sysdate, 'delete'); 7 end; 8 / Avertissement : DÚclencheur crÚÚ avec erreurs de compilation. SQL> show error Erreurs pour TRIGGER T_ARCHIVE : LINE/COL ERROR -------- ----------------------------------------------------------------- 2/1 PL/SQL: SQL Statement ignored 4/40 PL/SQL: ORA-00984: un nom de colonne n'est pas autorisÚ ici
Ceci devrait suffire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 create or replace trigger t_archive after delete ON depts insert into archive (numdept, nomdept, zone, utilisateur, date_util, evenement) SELECT numdept, nomdept, zone, user, sysdate, 'delete' FROM :old;
A +
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
Merci infiniment je vais essayer ça aussi
Jusqu'à présent j'arrive pas à m'en sortir
J'ai essayé les deux là mais toujours des erreurs
SQL> create or replace trigger t_archive 2 after delete ON depts 3 insert into archive(numdept, nomdept, zone, utilisateur,date_util,evenement) 4 select numdept, nomdept, zone, user, sysdate, 'delete' 5 from :old; 6 end; 7 / Avertissement : DÚclencheur crÚÚ avec erreurs de compilation. SQL> show error Erreurs pour TRIGGER T_ARCHIVE : LINE/COL ERROR -------- ----------------------------------------------------------------- 1/7 PL/SQL: SQL Statement ignored 3/6 PLS-00049: variable attachÚe (bind variable) erronÚe 'OLD' 3/10 PL/SQL: ORA-00903: nom de table non valide 4/5 PLS-00103: Symbole ";" rencontrÚSQL> desc archive Nom NULL ? Type ----------------------------------------------------------------------------------- -------- -------------------------------------------------------- NUMDEPT NUMBER(2) NOMDEPT VARCHAR2(17) ZONE VARCHAR2(15) UTILISATEUR NOT NULL VARCHAR2(10) DATE_UTIL NOT NULL DATE EVENEMENT NOT NULL VARCHAR2(9)SQL> create or replace trigger t_archive 2 after delete ON depts 3 for each row 4 begin 5 insert into archive(numdept, nomdept, zone, utilisateur,date_util,evenement) 6 select numdept, nomdept, zone, user, sysdate, 'delete' 7 from :old; 8 end; 9 / Avertissement : DÚclencheur crÚÚ avec erreurs de compilation. SQL> show error Erreurs pour TRIGGER T_ARCHIVE : LINE/COL ERROR -------- ----------------------------------------------------------------- 2/1 PL/SQL: SQL Statement ignored 4/6 PLS-00049: variable attachÚe (bind variable) erronÚe 'OLD' 4/10 PL/SQL: ORA-00903: nom de table non valide
Il manquait un : devant un des old, qu'est ce que ça donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 create or replace trigger t_archive after delete ON depts For each Row Begin insert into archive (numdept, nomdept, zone, utilisateur, date_util, evenement) values (:old.numdept, :old.nomdept, :old.zone, user, sysdate, 'delete'); end; /
Je vous remercie sincèrement. Ça marché mon cher. J'adore ce Furum
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager