IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

Paramètre INOUT à 0 OK mais à NULL KO [MariaDB]


Sujet :

SQL Procédural MySQL

  1. #1
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 032
    Points
    34 032
    Billets dans le blog
    14
    Par défaut Paramètre INOUT à 0 OK mais à NULL KO
    Bonjour,

    J'ai une procédure avec un paramètre INOUT :
    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)
    Plus loin, j'ai ces tests :
    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
    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
    SET @idAdresse = 0;
    CALL p_enregistrer_adresse (@idAdresse, ... );
    SELECT @idAdresse;
    =>
    Citation Envoyé par phpMyAdmin
    @idAdresse
    469
    Si je l'initialise à NULL, rien ne se passe !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SET @idAdresse = NULL;
    CALL p_enregistrer_adresse (@idAdresse, ... );
    SELECT @idAdresse;
    Citation Envoyé par phpMyAdmin
    @idAdresse
    NULL
    Why ?

    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.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 810
    Points
    30 810
    Par défaut
    Et en remplaçant id_adresse = NULL par id_adresse IS NULL dans les conditions du ELSEIF, ça fonctionne mieux ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 781
    Points : 52 769
    Points
    52 769
    Billets dans le blog
    5
    Par défaut
    Cinephil, Alzheimer te guette !!!!!!

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 032
    Points
    34 032
    Billets dans le blog
    14
    Par défaut
    Exact, je l'avais vu après coup et je viens de vérifier ; c'est beaucoup mieux avec IS NULL !

    Voilà ce que c'est de naviguer entre le SQL et le PHP !

    Comment ça je cherche des excuses ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passage de paramètre dans une méthode mis à NULL.
    Par alineas1 dans le forum GWT et Vaadin
    Réponses: 2
    Dernier message: 20/11/2015, 15h24
  2. [Axis2] Paramètre d'une méthode toujours null
    Par Neikeur dans le forum Services Web
    Réponses: 5
    Dernier message: 03/04/2012, 19h37
  3. [Requêtes paramétrées] Question très bête mais
    Par GoustiFruit dans le forum Bases de données
    Réponses: 6
    Dernier message: 24/01/2012, 09h43
  4. Fonction C et paramètres INOUT
    Par delasoul dans le forum Requêtes
    Réponses: 0
    Dernier message: 16/03/2009, 19h47
  5. Réponses: 0
    Dernier message: 15/01/2009, 16h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo