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 :La syntaxe de l'ordre insert et son exécution a été testée en remplaçant les :old par de vrais valeurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; /
Mes tables sont les suivantes:Je suis preneur d'un mode debug que je crois ne pas exister.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Merci de votre aide
PS : pour info, l'unicité des clés est gérée par index unique, c'est historique.
Partager