Bonjour,
J'ai une procédure avec un paramètre INOUT :
Plus loin, j'ai ces tests :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 CREATE OR REPLACE PROCEDURE p_enregistrer_adresse ( INOUT id_adresse INTEGER, -- Identifiant de l'adresse (importée ou déjà proposée à l'utilisateur et qu'il a pu modifier ou vider)
Si j'initialise l'appel de ma procédure avec 0, l'adresse est créée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 IF id_adresse > 0 THEN -- id_adresse fourni => on cherche cette adresse en BDD ELSEIF id_adresse = 0 OR id_adresse = NULL OR adresseImportee = TRUE THEN -- id_adresse non fourni ou importé de pef_public => On cherche l'adresse par ses composantes
=>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SET @idAdresse = 0; CALL p_enregistrer_adresse (@idAdresse, ... ); SELECT @idAdresse;Si je l'initialise à NULL, rien ne se passe !Envoyé par phpMyAdmin
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SET @idAdresse = NULL; CALL p_enregistrer_adresse (@idAdresse, ... ); SELECT @idAdresse;Why ?Envoyé par phpMyAdmin
J'ai pensé que comme le paramètre attend un INT, la procédure pourrait ne pas s'exécuter en cas de NULL mais je n'ai rien dans sql_errors.![]()
Partager