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
Voici l'appel avec les paramètre passés
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 //
et Voici la réponse
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')
Est-ce que c'est un paramètre à changer dans MySQL ?
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
Je remercie d'avance toutes les personnes qui pourront m'indiquer un point de recherche ou la solution à mon problème. Merci
Partager