Bonjours à tous les abonnés du forum,
Je lance un trigger pour générer la clé primaire de la table Computer, à partir de la clé primaire de la table C_HW(qui se trouve dans la table computer),
Mais je reçois le message suivant au cours de l'exécution :
Voila le code du déclencheur :ORA-01403: aucune donnée trouvée
La chose que je n'ai pas encore compris est que la séquence reste toujours à sa valeur initiale, bien que NEXTVAL soit situé au début du code (la séquence va de 4000 à 9999).
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 create or replace trigger "T_C_K" BEFORE insert on "COMPUTER" for each row DECLARE CT C_HW.CH_TYPE%TYPE; CH1 CHAR(5); CH2 CHAR(2); CH3 CHAR(7); NN NUMBER(4); begin CH1:='DE001'; SELECT S_C_K.NEXTVAL INTO NN FROM DUAL; CT := :NEW.C_H_ART ; CT:=SUBSTR(CT,1,2); IF CT= 'NB' THEN CH2:='WL'; ELSIF CT = 'PC' THEN CH2:='WD'; ELSIF CT= 'SV' THEN CH2:='WS'; ELSIF CT= 'WS' THEN CH2:='WC'; ELSE RAISE_APPLICATION_ERROR(-20010, 'the type of computer is not existing, existings type : laptop, cad, desktop, server'); END IF; CH3:=CONCAT(CH1,CH2); :NEW.C_NR := CH3||LPAD(NN,4,'0'); end;
La table Computer est la suivante :
Les tables Users et C_HW desquelles dépendent la table computer sont déjà peuplées.
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 CREATE TABLE "COMPUTER" ( "C_NR" VARCHAR2(5), "C_USER" VARCHAR2(5), "C_H_ART" VARCHAR2(10), "C_TYP" VARCHAR2(20), "C_HERST" VARCHAR2(20), "C_LIEF" VARCHAR2(20), "C_PREIS" NUMBER, "C_BEZ" VARCHAR2(25) NOT NULL DISABLE, "C_SERI" VARCHAR2(25), "C_CPU" VARCHAR2(20), "C_RAM" VARCHAR2(20), "C_FP" VARCHAR2(40), "C_LIEF_DAT" DATE, "C_FREIGAB_NR" VARCHAR2(20), "C_BEST_NR" VARCHAR2(20), "C_BEM" VARCHAR2(500), "C_BEST_DAT" DATE, "C_FREIGAB_DAT" DATE, "C_RAUM" NUMBER, "IP_ADR" VARCHAR2(15), "SUB_NETZ" NUMBER, "MAC_ADR" VARCHAR2(25), CONSTRAINT "COMPUTER_PK" PRIMARY KEY ("C_NR") ENABLE ) / ALTER TABLE "COMPUTER" ADD CONSTRAINT "COMPUTER_FK2" FOREIGN KEY ("C_USER") REFERENCES "Users" ("U_NR") ENABLE / ALTER TABLE "COMPUTER" ADD CONSTRAINT "COMPUTER_FK3" FOREIGN KEY ("C_H_ART") REFERENCES "C_HW" ("CH_ART") ENABLE /
Partager