Mon trigger ne se déclenche pas
Bonjour,
Sous Oracle 10g, j'ai créé un trigger qui est vu OK par Oracle, mais il ne s'exécute pas, et je ne sais pas comment le tester plus précisément. Sans doute que mon trigger n'est pas correct par rapport à ce que je souhaite faire.
Voici l'objectif :
J'ai une table GRAPHICAL_LINE_SURF, une table GRAPHICAL_LINE_SURF_SECT et une table TRAJ_DEP.
Je veux que sur insertion d'un record (et insertion uniquement) dans la table GRAPHICAL_LINE_SURF, il y ait copie des records de la table TRAJ_DEP dans la table GRAPHICAL_LINE_SURF_SECT, cela ne me semble pas complexe.
Mon trigger est le suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11
| create or replace trigger graphical_line_surf_sect_sid
before insert or update of airspace_env_name,name,kind on graphical_line_surf
for each row
begin
insert into graphical_line_surf_sect select
:old.airspace_env_name,:old.name,:old.kind,'Y',tpd$dep#order_number,
:old.airspace_env_name,point_name#geo_pt,null,null,null,null,null,null from traj_dep
where airspace_env_name=:old.airspace_env_name and
departure_proc_name=:old.departure_proc_name#dep_proc;
end;
/ |
La syntaxe de l'ordre insert et son exécution a été testée en remplaçant les :old par de vrais valeurs.
Mes tables sont les suivantes:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| SQL> desc graphical_line_surf
Name Null? Type
----------------------------------------- -------- ----------------------------
AIRSPACE_ENV_NAME NOT NULL VARCHAR2(20)
NAME NOT NULL VARCHAR2(6)
KIND NOT NULL VARCHAR2(19)
AIRSPACE_ENV_NAME#AIRWAY VARCHAR2(20)
AIRWAY_NAME#AIRWAY VARCHAR2(7)
AIRSPACE_ENV_NAME#DEP_PROC VARCHAR2(20)
DEPARTURE_PROC_NAME#DEP_PROC VARCHAR2(7)
AIRSPACE_ENV_NAME#ARRIVAL VARCHAR2(20)
ARRIVAL_PROC_NAME#ARRIVAL VARCHAR2(7)
AIRSPACE_ENV_NAME#CTL_AREA VARCHAR2(20)
CONTROLLED_AREA_NAME#CTL_AREA VARCHAR2(5)
ATC_CENTRE_NAME#CTL_AREA VARCHAR2(8)
AIRSPACE_ENV_NAME#N_C_AREA VARCHAR2(20)
NON_CTL_AREA_NAME#N_C_AREA VARCHAR2(12)
MAPS_USAGE_DESCRIPTOR VARCHAR2(64)
SQL> desc graphical_line_surf_sect
Name Null? Type
----------------------------------------- -------- ----------------------------
AIRSPACE_ENV_NAME NOT NULL VARCHAR2(20)
NAME NOT NULL VARCHAR2(6)
KIND NOT NULL VARCHAR2(19)
VISIBILITY NOT NULL VARCHAR2(1)
ORDER_NUM NOT NULL NUMBER(38)
AIRSPACE_ENV_NAME#GEO_PT VARCHAR2(20)
POINT_NAME#GEO_PT VARCHAR2(5)
KIND#GR_POINT VARCHAR2(15)
AIRSPACE_ENV_NAME#GR_POINT VARCHAR2(20)
NAME#GR_POINT VARCHAR2(16)
LATITUDE VARCHAR2(7)
LONGITUDE VARCHAR2(8)
MAPS_USAGE_DESCRIPTOR VARCHAR2(64)
SQL> desc dep_proc
Name Null? Type
----------------------------------------- -------- ----------------------------
AIRSPACE_ENV_NAME NOT NULL VARCHAR2(20)
DEPARTURE_PROC_NAME NOT NULL VARCHAR2(7)
AIRPORT_CODE#RUNWAY NOT NULL VARCHAR2(4)
AIRSPACE_ENV_NAME#RUNWAY NOT NULL VARCHAR2(20)
HEADING#RUNWAY NOT NULL NUMBER(38)
RUNWAY_DISTINCTION#RUNWAY VARCHAR2(1)
PRINT_ON_PAPER NOT NULL VARCHAR2(1)
AIRCRAFT_TYPE VARCHAR2(30)
SQL> |
Je suis preneur d'un mode debug que je crois ne pas exister.
Merci de votre aide
PS : pour info, l'unicité des clés est gérée par index unique, c'est historique.