Bonjour
J'utilise PGAdmin 3 et j'essaie d'adapter une fonction PL/SQL vers PL/pgSQL.
Voilà la fonction telle qu'elle est :
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 :
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
Partager