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

PostgreSQL Discussion :

No function matches the given name and argument types.


Sujet :

PostgreSQL

  1. #1
    Membre habitué Avatar de Davboc
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 266
    Points : 168
    Points
    168
    Par défaut No function matches the given name and argument types.
    Bonjour

    J'utilise PGAdmin 3 et j'essaie d'adapter une fonction PL/SQL vers PL/pgSQL.

    Voilà la fonction telle qu'elle est :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    create or replace function fn_nbmots(pi_s_titre IN varchar) RETURNS numeric AS 
    $body$
     
    DECLARE
      result numeric;
      l_s_titre  varchar(100);
      l_n_nbespace numeric;
      l_n_posespace numeric;
     
    BEGIN
      l_n_posespace := 0;
      l_n_nbespace := 0;
      l_s_titre := ltrim( rtrim( pi_s_titre));
     
      l_n_posespace := instr( l_s_titre, ' ');
      WHILE l_n_posespace <> 0 loop
          l_n_nbespace := l_n_nbespace +1;      
          l_s_titre := substr( l_s_titre, l_n_posespace + 1, 200);
          l_n_posespace := instr( l_s_titre, ' ');
          exit when l_n_posespace = 0;
      END loop;
     
      result := l_n_nbespace +1;
      RETURN(result);
    END;
    $body$
    LANGUAGE plpgsql;
    Mon problème, pour l'instant, c'est que j'ai un message d'erreur qui dit :
    État SQL :42883
    Astuce : No function matches the given name and argument types. You may need to add explicit type casts.
    Contexte : PL/pgSQL function "fn_nbmots" line 13 at assignment
    Lorsque je tente de l'appeler.

    Voilà le code d'appel que j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM fn_nbmots('la vie est belle');
    Le but de cette fonction est de compter le nombre de mots d'une chaîne.

    Merci de votre aide

  2. #2
    Membre émérite
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    Points : 2 545
    Points
    2 545
    Par défaut
    Bonsoir,

    en fait tu n'as pas le bon nombre d'argument sur instr.

    Par contre je te propose cette fonction faite a l'instant :

    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
    18
    19
    20
    CREATE OR REPLACE FUNCTION fn_nbmots(st varchar) RETURNS integer AS 
    $body$
    DECLARE
      i integer;  
      chaine varchar;
      desti varchar;
      current char(1);
      last char(1);
    BEGIN
     -- on gere la ponctuation en remplacant les char par un espace
     chaine:=trim(translate(st,',;.:!?','      '));
     -- on enleve les doubles espaces eventuels
     WHILE position('  ' in chaine)!=0 LOOP
      chaine:=replace(chaine,'  ',' ');
     END LOOP;
     -- on compte le nombre de mots
     return array_upper(string_to_array(chaine,' '),1);
    END;
    $body$
    LANGUAGE plpgsql;
    exemple :

    select fn_nbmots('Voici un essai, ca gere la ponctuation ? oui !');

    retourne : 8
    Delphi 2009 - ZeosLib - DevExpress - TMS - PgDAC
    PostgreSQL 8.4 sous Debian
    Sites : http://postgresql.developpez.com http://dgriessinger.developpez.com

  3. #3
    Membre habitué Avatar de Davboc
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 266
    Points : 168
    Points
    168
    Par défaut
    Merci ta fonction fonctionne parfaitement !

    Mais le message d'erreur que j'ai eu etait directement lié à la mauvaise utilisation de la fonction instr ?

    Si c'est le cas il n'est pas très équivoque....

Discussions similaires

  1. Erreur "No resource found that matches the given name"
    Par kevin254kl dans le forum Android
    Réponses: 2
    Dernier message: 07/12/2014, 13h47
  2. Réponses: 1
    Dernier message: 20/05/2008, 18h29
  3. Function.Match en fonction d'un textbox
    Par Dream Master dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/06/2007, 14h09
  4. procedures stockées:can't return a result set in the given..
    Par ronando dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 27/10/2005, 15h55
  5. [Plugin]package does not match the expected package src
    Par Fladnag dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 10/03/2004, 20h17

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