Skip site navigation (1) Skip section navigation (2)

Re: funcion no existe

From: Miguel Rodríguez Penabad <penabad(at)gmail(dot)com>
To: "Crispin T(dot)" <cris(dot)emis(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: funcion no existe
Date: 2007-06-27 22:18:27
Message-ID: 95335e4e0706271518w3983e750qc4bedb0e93dfc9c7@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
El 27/06/07, Crispin T. <cris(dot)emis(at)gmail(dot)com> escribió:
> hola a todos los de la lista tengo una pregunta sobre funcion plpgsql la
> funcion es algo asi
>
>
> CREATE OR REPLACE FUNCTION sumaa(tipo int2)
> RETURNS int2 $$ AS
> BEGIN
>  RETURN tipo + 1;
>  END
> $$
> LANGUAGE ' plpgsql'
>
> para ejecutar
> SELECT  sumaa(5);
> pero me dice que la funcion no existe
>
> lo mismo pasa con cualquier funcion que creo
>
> S.O. ubuntu 7.04
>
> nota  al querer crear la funcion en plpgsql me decia que no habia el
> lenguaje asi que hice
> create language plpgsql e instalo el lenguaje (eso creo ) no genero error y
> en pgadmin puedo ver el lenguaje

Dos cosas en la creación de la función:
.. RETURNS int2 $$ AS .. no es válido
será RETURNS int2 AS $$ ...
y el lenguage no es ' plpgsql' con el espacio al inicio, sino
simplemente plpsql (ni necesitas las comillas).

Por lo tanto, NO HA PODIDO CREAR LA FUNCIÓN. Si sí la ha creado quiere
decir que no has copiado/pegado la definición, sino que la has
tecleado de nuevo con lo que puedes introducir errores. De hecho has
introducido 2, por lo que siempre es mejor copiar y pegar lo que no
funcione.

En cualquier caso: Si la función es sumaa(int2), se espera algo de
tipo int2, y el 5 por defecto (creo que) es un int.
Si haces un cast, funciona:
select sumaa(5::int2);
 sumaa
-------
     6
(1 row)

¿Por que no crearla directamente con el parámetro tipo int?

In response to

pgsql-es-ayuda by date

Next:From: Alvaro HerreraDate: 2007-06-27 22:39:35
Subject: Re: funcion no existe
Previous:From: Crispin T.Date: 2007-06-27 21:53:30
Subject: funcion no existe

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group