Bonjour,
Je n'arrive pas à comprendre pourquoi, quand j'appelle une procédure et que je lui passe des paramètres de mauvais type ou de longueur trop grande, il ne me déclenche pas d'erreur mais il change le int en string et il tronque la chaîne.
Voici ma procédure
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
 
DELIMITER //
create procedure proc_insert_competition(IN p_titre varchar(100),
 IN p_dateDebut date,
 IN p_dateFin date,
 IN p_organisation varchar(100),
 IN p_npa int,
 IN p_ville varchar(50),
 IN p_cantonal varchar(5))
begin
DECLARE EXIT HANDLER FOR SQLWARNING ROLLBACK;
DECLARE EXIT HANDLER FOR NOT FOUND ROLLBACK;
DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK;
 
	INSERT INTO competitions(titreCompetitiion,
							dateDebutCompetition,
							dateFinCompetition,
							sociteteCompetition,
							npaCompetition,
							villeCompetition,
							cantonalCompetition) 
			VALUES (p_titre,p_dateDebut,p_dateFin,p_organisation,p_npa,p_ville,p_cantonal);
 
end //
Voici l'appel avec les paramètre passés
Code : Sélectionner tout - Visualiser dans une fenêtre à part
call proc_insert_competition(12,'2014-05-03','2014-05-03','ssssssss','qqqqqqqqqq',123,'ddddddddd')
et Voici la réponse
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1 row(s) affected, 2 warning(s):1366 Incorrect integer value: 'qqqqqqqqqq' for column 'p_npa' at row 11265 Data truncated for column 'p_cantonal' at row 1	0.000 sec
Est-ce que c'est un paramètre à changer dans MySQL ?

Je remercie d'avance toutes les personnes qui pourront m'indiquer un point de recherche ou la solution à mon problème. Merci