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 :

Ecriture d'une fonction


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 44
    Par défaut Ecriture d'une fonction
    Bonjour à tous,
    J'utilise actuellement phpmyadmin pour écrire mes fonctions... Mais étant débutant, avez-vous ou existe-t-il une façon d'écrire celles-ci pour ne pas avoir d'erreurs.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE FUNCTION fermeture_test DECLARE date DATETIME
    BEGIN
    SELECT DATE_ACTION INTO date
    FROM process_incident 
    WHERE ACTION = "Fermer"
    LIMIT 1
    END
    Ben ça marche pas....

    Merci de votre aide...

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 135
    Par défaut
    essaie ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    CREATE FUNCTION fermeture_test Returns int
    DECLARE madate DATETIME
    BEGIN
    SELECT DATE_ACTION INTO madate
    FROM process_incident 
    WHERE ACTION = "Fermer"
    LIMIT 1
     
    Return madate
    END

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 135
    Par défaut
    plutôt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    CREATE FUNCTION fermeture_test Returns DATETIME
    DECLARE madate DATETIME
    BEGIN
    SELECT DATE_ACTION INTO madate
    FROM process_incident 
    WHERE ACTION = "Fermer"
    LIMIT 1
     
    Return madate
    END

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 44
    Par défaut
    Sous phpmyadmin, cela ne fonctionne pas il me donne l'erreur suivante :

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DATETIME DECLARE madate DATETIME BEGIN SELECT DATE_ACTION INTO madate WHERE `ACT' at line 1
    Il n'y a pas besoin de DELIMITER ?

    de toute façon je ne comprends pas comment l'on créer une fonction au sein de MYSQL...

    merci,

    PS : Quelqu'un aurait une doc sur les fonctions MYSQL (à part celle que l'on trouve dans les docs officielles, et surtout des exemples...)

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 135
    Par défaut
    d'après la doc je pense avoir oublié les parenthèses comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    CREATE FUNCTION fermeture_test() Returns DATETIME
    DECLARE madate DATETIME
    BEGIN
    SELECT DATE_ACTION INTO madate
    FROM process_incident 
    WHERE ACTION = "Fermer"
    LIMIT 1
     
    RETURN madate
    END

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 331
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE FUNCTION fermeture_test() Returns DATETIME
    BEGIN
    DECLARE madate DATETIME;
    SELECT DATE_ACTION INTO madate FROM process_incident WHERE ACTION = "Fermer" LIMIT 1;
    RETURN madate;
    END
    $$
    et définis le délimiteur "$$" dans le champs "Délimiteur" de PhpMyAdmin.

    Rachid A.

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 44
    Par défaut
    Re...
    ça ne fonctionne pas, en fait il faudrait déclarer les variables avant. J'ai fait un test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE FUNCTION bonjour (test CHAR(20)) RETURNS CHAR(50)
      RETURN CONCAT ('Bonjour',test);
    et la ça fonctionne...

    Mais pour moi c'est pas concluant, je ne sais toujours pas comment sont fabriquées les requêtes, personne n'a une doc qui explique ça de façon clair ?

    Je vous remercie,

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

Discussions similaires

  1. [XL-2010] Ecriture d'une fonction dans une cellule via VBA
    Par Seb-Office dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 11/11/2010, 17h39
  2. Réponses: 9
    Dernier message: 04/01/2010, 20h41
  3. Ecriture d'une fonction imbriquée dans une autre
    Par kase74 dans le forum Débuter
    Réponses: 13
    Dernier message: 20/10/2008, 21h45
  4. Ecriture d'une fonction calculant le salaire brut
    Par rimbaut dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 11/09/2007, 19h31
  5. [VBA-E] Ecriture d'une fonction
    Par aractingias dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/03/2007, 11h59

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