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 :

Erreur 1292 à l'exécution d'une procedure stockée


Sujet :

SQL Procédural MySQL

  1. #1
    Membre régulier
    Inscrit en
    Mars 2003
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 217
    Points : 73
    Points
    73
    Par défaut Erreur 1292 à l'exécution d'une procedure stockée
    Bonjour,
    J'ai la procédure stockée suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_desactivateDataByObservation`(in variableID varchar(6), in lower datetime, in upper datetime)
    begin set @inputID=variableID ; set @inputLower=lower ; set @inputUpper=upper ; set @mySQl=Concat('UPDATE mask set ',@inputID,' =false where observation between '',@inputLower,'' and '',@inputUpper,''');prepare stmt from @mySQL ; execute stmt ; deallocate prepare stmt ; END
    Quand je l'exécute avec les paramètres ci-dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call dbexplore.sp_desactivateDataByObservation('var001','2007-10-01 00:00:01','2007-10-01 06:02:52')
    j'obtiens l'erreur suivante:
    Error Code: 1292. Incorrect datetime value: ',@inputLower,' for column 'observation' at row 1
    Pourtant quand j'exécute la requête équivalente, elle fonctionne bien. Est ce que quelqu'un peut me dire quel est le problème dans cette procédure stockée?
    Merci pour votre aide

  2. #2
    Expert éminent Avatar de kain_tn
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 660
    Points : 7 754
    Points
    7 754
    Par défaut
    Déjà pour commencer tu pourrais formater un peu ta requête parce que là c'est franchement peu lisible et il y a des erreurs avec des guillemets non échappés...

    Ensuite, je ne comprends pas bien pourquoi tu concatène toutes tes variables si c'est pour faire une requête préparée. Essaye plutôt:

    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
     
    CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_desactivateDataByObservation`(
        IN variableID varchar(6), 
        IN lower datetime, 
        IN upper datetime
    )
    begin 
        SET @inputID=variableID; 
        SET @inputLower=lower; 
        SET @inputUpper=upper; 
     
        SET @myRequest = Concat('UPDATE mask SET ', @inputID, '=false WHERE observation BETWEEN ? AND ?');
     
        PREPARE stmt FROM @myRequest;
        EXECUTE stmt USING @inputLower, @inputUpper; 
        DEALLOCATE PREPARE stmt; 
    END

  3. #3
    Membre régulier
    Inscrit en
    Mars 2003
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 217
    Points : 73
    Points
    73
    Par défaut
    Merci pour avoir montrer que l'exécution du statement peut être associée à des paramètres.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 31/07/2008, 17h16
  2. Exécution d'une procedure stockée
    Par assiya dans le forum Windows Forms
    Réponses: 4
    Dernier message: 15/07/2008, 11h53
  3. Erreur d'Exécution d'une procédure stockée
    Par h.Madjid dans le forum SQL
    Réponses: 1
    Dernier message: 05/09/2007, 19h34
  4. Erreur 450 avec une procedure stockée : Access/VB6
    Par poissonsoluble dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 30/05/2007, 10h14
  5. Commande d'exécution d'une procedure stockée SQL sur vb
    Par tseg dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/11/2003, 12h47

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