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 :

Procedures stockees erreur sur champ


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 209
    Par défaut Procedures stockees erreur sur champ
    Bonjour,

    A titre de test, j'ai créé la procédure suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    DELIMITER $$
    ` PROCEDURE `INp`(IN p_no VARCHAR(19), IN p_ch VARCHAR(15), IN p_na VARCHAR(9), IN p_nb VARCHAR(9),IN p_idt CHAR(2), IN p_ha SMALLINT, IN p_la SMALLINT, IN p_hb SMALLINT, IN p_lb SMALLINT, OUT p_out SMALLINT)
    BEGIN
    	INSERT INTO fv_images (nom1, chemin, name1, name2, idtableau, h1, l1, h2, l2) VALUES (p_no, p_ch, p_na, p_nb, p_idt, p_ha, p_la, p_hb, p_lb);
    	SET p_out = LAST_INSERT_ID();
    END$$
    DELIMITER ;
    Lorsque j'appelle cette magnifique proc de test par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CALL inP ( a, b, c, d, e, 1, 1, 1, 1, 1)
    (Le dixième paramètre est à un car vide n'est pas accepté).
    MySQL répond : Column not found: 1054 Unknown column 'a' in 'field list'
    J'ai essayé avec d'autres valeurs cela ne change rien bien sur...

    Evidemment, la vrai procédure d'insertion avec tests... devrait déjà tourner

    Votre aide est très bien venue !!!
    Merci à tous
    JL

  2. #2
    Membre éclairé Avatar de guigouz
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 84
    Par défaut
    Je ne suis pas un pro des procédures stockées sous mySQL mais sous Oracle j'aurais mis des quotes ou doubles quotes autour du a et des autres lettres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CALL inP ( 'a', 'b', 'c', 'd', 'e', 1, 1, 1, 1, 1)
    A suivre... Bonne continuation
    Guigouz

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 74

    Informations forums :
    Inscription : Octobre 2006
    Messages : 124
    Par défaut
    Bonjour,
    Sauf erreur je ne compte que 9 paramètres IN : 5 varchar et 4 smallint
    Bonne journée
    MS

  4. #4
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 209
    Par défaut
    Bounjour,
    Merci à vous tous et particulièrement à 'guigouz' : en effet, les "" étaient indispensables.
    Et MarcS a raison le dixième paramètre est un OUT.
    La bonne syntaxe est donc éfinitivement :
    [code]CALL inP ( 'a', 'b', 'c', 'd', 'e', '1', '1', '1', '1', @p_out)[/]
    Vous remarquerez le @ et l'absence de " pour ce dernier paramètre. Je l'ai fait au feeling sans savoir pourquoi du reste.
    Merci
    JL

  5. #5
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    Bonjour,
    ' comme dans beaucoup de langages signifie chaîne de caractère.
    Cela signifie que seule les chaines de caractères sont encadrés par ces derniers.

    @p_out est une variable, et les 1 sont des entiers, donc seule les caractères sont a encadrer par '

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

Discussions similaires

  1. Erreur sur champ text pour un index Full-Text
    Par Steph82 dans le forum Outils
    Réponses: 5
    Dernier message: 06/01/2011, 14h08
  2. Procedure stockee : erreur.
    Par Tidus159 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/04/2008, 13h24
  3. [Procedure Stockee] Condition sur la creation
    Par wanagro dans le forum Langage SQL
    Réponses: 4
    Dernier message: 19/02/2008, 18h23
  4. [PROCEDURES STOCKEES] Erreur de syntaxe
    Par Lambrosx dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 28/02/2007, 09h45
  5. Erreur sur champ date
    Par climz dans le forum Access
    Réponses: 5
    Dernier message: 11/09/2006, 17h56

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