Bonjour,
Cette fois, je veux assigner une valeur à une colonne d'une table sur modification d'une autre colonne de cette même table. Mais la valeur à assigner vient d'une autre table. Dans ma première version qui a déclenché le message, j'avais :Je peux comprendre l'erreur car je cherche à faire un update sur un record déjà en update. C'est peut être un pb de syntaxe mais je ne sais pas comment aller chercher la valeur de la table RUNWAY sans mettre dans le trigger le UPDATE GRAPHICAL_POINT ... (SELECT ... FROM RUNWAY) WHERE ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 create or replace trigger graphical_point_runway before update of heading#runway on graphical_point begin update graphical_point set length=(select length from runway where airspace_env_name=:new.airspace_env_name#runway and heading=:new.heading#runway and runway_distinction=:new.runway_distinction#runway) where :old.heading#runway=:new.heading#runway and :old.runway_distinction#runway=:new.runway_distinction#runway; end; /
Passer par une table temporaire me semble compliqué pour ce que je veux faire, non ?
Merci
Mes tables :
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 SQL> desc graphical_point Name Null? Type ----------------------------------------- -------- ---------------------------- AIRSPACE_ENV_NAME NOT NULL VARCHAR2(20) NAME NOT NULL VARCHAR2(16) KIND NOT NULL VARCHAR2(15) AIRSPACE_ENV_NAME#GEO_PT VARCHAR2(20) POINT_NAME#GEO_PT VARCHAR2(5) AIRSPACE_ENV_NAME#AIRPORT VARCHAR2(20) AIRPORT_CODE#AIRPORT VARCHAR2(4) AIRSPACE_ENV_NAME#RUNWAY VARCHAR2(20) AIRPORT_CODE#RUNWAY VARCHAR2(4) HEADING#RUNWAY NUMBER(38) RUNWAY_DISTINCTION#RUNWAY VARCHAR2(1) AIRSPACE_ENV_NAME#HOLD VARCHAR2(20) HOLD_NAME#HOLD VARCHAR2(20) LATITUDE VARCHAR2(7) LONGITUDE VARCHAR2(8) LENGTH NUMBER(38) RUNWAY_HEADING NUMBER(38) ORIENTATION NUMBER(4,1) TURN_DIRECTION VARCHAR2(1) LEG_LENGTH NUMBER(38) LEG_TIME NUMBER(38) MAPS_USAGE_DESCRIPTOR VARCHAR2(64) SQL> desc runway Name Null? Type ----------------------------------------- -------- ---------------------------- AIRSPACE_ENV_NAME NOT NULL VARCHAR2(20) AIRPORT_CODE NOT NULL VARCHAR2(4) RUNWAY_DISTINCTION VARCHAR2(1) HEADING NOT NULL NUMBER(38) AIRSPACE_ENV_NAME#GEO_PT NOT NULL VARCHAR2(20) POINT_NAME#GEO_PT NOT NULL VARCHAR2(5) WIDTH NUMBER(3,2) LENGTH NUMBER(38) SQL>
Partager