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

Requêtes PostgreSQL Discussion :

PL/pgSQL les fonctions


Sujet :

Requêtes PostgreSQL

  1. #1
    Membre régulier
    Homme Profil pro
    Autre
    Inscrit en
    Mars 2021
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mars 2021
    Messages : 201
    Points : 92
    Points
    92
    Par défaut PL/pgSQL les fonctions
    Bonjour
    je viens de commencer juste le PL/pgsql
    Je voudrais à partir d'une simple requête en faire un fonction pour m'exercer, la requete marche mais quand j'appel la fonction j'ai un message d'erreur pourtant je devrais avoir le même résultat. Y a t'il une erreur
    merci pour votre aide

    ma requête est la suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select count(distinct id_client)
    from client;
    ma fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    create function mesClients (INTEGER) returns INTEGER as '
     
    DECLARE
    clients INTEGER;
     
    BEGIN
    select into clients count (distinct id_client)
    from client;
    return clients;
     
    end;
    ' LANGUAGE 'plpgsql';
    j'appel ma fonction
    message d'erreur :
    RROR: ERREUR: la fonction mesclients() n'existe pas
    LINE 1: select mesClients();
    ^
    HINT: Aucune fonction ne correspond au nom donné et aux types d'arguments.
    Vous devez ajouter des conversions explicites de type.


    SQL state: 42883
    Character: 8

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Bonjour,

    C'est parce que votre fonction, telle qu'elle est déclarée, attend un paramètre de type INTEGER. En effet, vous avez mis INTEGER entre les parenthèses dans la création de la fonction, ce qui correspond à la déclaration d'un paramètre.
    Mais lors de votre appel de la fonction dans le SELECT, il n'y a plus de paramètre.

    Déclarez votre fonction comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    create function mesClients() returns INTEGER as '
    ...
    Ensuite, supprimez la fonction paramétrée comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DROP FUNCTION mesClients(INTEGER);
    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre régulier
    Homme Profil pro
    Autre
    Inscrit en
    Mars 2021
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mars 2021
    Messages : 201
    Points : 92
    Points
    92
    Par défaut PL/pgSQL les fonctions
    Bonjour,
    je vous remercie pour votre aide je n'avais pas fait attention.
    merci encore

  4. #4
    Membre averti
    Profil pro
    Administrateur
    Inscrit en
    Mai 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 237
    Points : 433
    Points
    433
    Par défaut
    Vous avez une erreur dans votre requête
    Faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT count (distinct id_client)
    INTO clients 
    FROM client;

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

Discussions similaires

  1. doc sur les fonctions
    Par masterfab dans le forum C
    Réponses: 18
    Dernier message: 23/06/2005, 17h55
  2. Pourquoi une seule valeur de retour pour les fonctions ?
    Par Bruno75 dans le forum Langages de programmation
    Réponses: 33
    Dernier message: 18/01/2004, 13h58
  3. Réponses: 11
    Dernier message: 22/12/2003, 21h06
  4. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04
  5. Réponses: 7
    Dernier message: 24/05/2003, 15h56

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