j'ai créé ma table en sql*plus oracle 8i et à l'aide de formulaire form builder oracle developper 2000 je voudrais inserrer les donnée mais après l'enregistrement je fais select *from intervention1 je constate que la ligne est dupliquée ce qui fais que je ne peus pas declarer une clé primaire pendant la création de la table sinon il y'aura erreur de violation de contraint d'intègrité vioci le code :
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
PROCEDURE ENREG_INTERV IS
CURSOR Cur_interv IS --curseur qui selectionne le numero de tous les clients
				select DISTINCT(num_interv)
				from intervention1;
				   num_interv number(6);		
				  bool BOOLEAN; 
			    alert number;
 
BEGIN
	:SYSTEM.MESSAGE_level:=5;
		   OPEN Cur_interv;
			 bool:=FALSE;
			 LOOP  -- verification de l'existance du code
			 		FETCH Cur_interv INTO num_interv;
					EXIT WHEN Cur_interv%NOTFOUND;
					IF num_interv =:tx_num_interv THEN
						bool:=TRUE; -- Cas ou l'enregistrement existe
						EXIT;
	END IF;	
END LOOP;
IF bool=TRUE THEN
		    --	code client  existant';--Message d'erreur
	alert := show_alert('isertion impossible');
		 ELSE
						-- Debut de l'enregistrement
IF :tx_num_interv IS NOT NULL THEN
 
INSERT INTO INTERVENTION1(
 
 CODE_UNITE ,            
 DESIGNATION_ZONE,                                 
 NUM_INTERV ,            
 SECTION ,               
 LOTS ,                  
 PARCELLE ,              
 RANG ,                  
 NOM ,                   
 PRENOM ,                
 DATE_PAN_DECL,          
 DATE_CONSTAT ,          
 HEURE_CONSTAT ,         
 MIN_CONSTAT ,           
 DATE_TRANSMISSION ,     
 HEURE_TRANSMISSION ,    
 MIN_TRANSMISSION ,      
 DATE_INTERV_PAN ,       
 HEURE_INTERV,           
 MIN_INTERV ,
 NOM_CHEF_EQ ,           
 PRENOM_CHEF_EQ ,        
 NAT_PAN_SIGN ,          
 NAT_PANNE_CONSTATE ,           
 OBSERVATION ,           
 CLOTURE, 
 HEURE_TEMPS_MIS,
 MIN_TEMPS_MIS    )       
 	 VALUES(
 	          :TX_CODE_UNITE,             
            :TX_DESIGNATION_ZONE,                                 
    				:TX_NUM_INTERV,             
 						:TX_SECTION,                
 						:TX_LOTS,                   
 						:TX_PARCELLE,               
 						:TX_RANG,                   
 						:TX_NOM,                    
 						:TX_PRENOM,                 
 						:TX_DATE_PAN_DECL,          
 						:TX_DATE_CONSTAT,           
 						:TX_HEURE_CONSTAT,          
 						:TX_MIN_CONSTAT,            
 						:TX_DATE_TRANSMISSION,      
 						:TX_HEURE_TRANSMISSION ,    
 						:TX_MIN_TRANSMISSION,       
 						:TX_DATE_INTERV_PAN,        
 						:TX_HEURE_INTERV,           
 						:TX_MIN_INTERV,
 						:TX_NOM_CHEF_EQ ,           
 						:TX_PRENOM_CHEF_EQ ,        
 						:TX_NAT_PAN_SIGN,           
 						:TX_NAT_PANNE_CONSTATE,            
 						:TX_OBSERVATION ,           
 						:TX_CLOTURE, 
 						:TX_HEURE_TEMPS_MIS,
 						:TX_MIN_TEMPS_MIS    
 						);     
						COMMIT;
 
	            --REINITIALISATION DES DIFFERENTS CHAMPS  	
 
	            --go_item(''); 					
							--:aff_msg:='Saisissez un nouvel Enregistrement ';
 
		   ELSE
		alert:=SHOW_alert('inser_impos');
							--GO_ITEM
             END IF;	
		END IF;
			 CLOSE Cur_interv;
			:SYSTEM.message_level:=0;
        END;