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 :
ORA-01403: aucune donnée trouvée
Voila le code du déclencheur :
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 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).

La table Computer est la suivante :
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
/
Les tables Users et C_HW desquelles dépendent la table computer sont déjà peuplées.