Que te aparece cuando ejecutas:

SHOW search_path;

El 20-08-2009, a las 0:24, Suso Lopez escribió:

el nombre de la tabla esta bien (copie y pegue de las propiedades de la tabla directamente), con lo cual no hay posibilidad de error, lo del select casi no me preocupa tanto, me preocupa mas que no me reconozca la tabla, estan en el miosmo esquema, como dije, esa funcion la cree "dentro" de las propiedades de esa tabla, no se si es que debo mirar en algun otro sitio, el usuario es el mismo(la estoy ejecutando desde pgadmin), pg es la 8.4, bajo winxp.



El 19 de agosto de 2009 23:23, Alvaro Herrera <[email protected] ip.org> escribió:
Suso Lopez escribió:
> CREATE OR REPLACE FUNCTION prueba(n_cli integer, existe boolean)
>   RETURNS boolean AS
> $BODY$
1> DECLARE
2>
3> valores ctr_alt%ROWTYPE; me marca error el del titulo del mensaje
4>     encontrado int4;
5> BEGIN
6>   SELECT cod_cli,esta FROM bloq WHERE cod_cli=n_cli ;
7>
8> IF NOT FOUND THEN
9>         valores.cod_cli:=n_cli:        aqui tambien me da error
10>
11>         RETURN FALSE;
12>     END IF;
13>   IF  FOUND THEN
14>        RETURN true;
15>     END IF;
16> END;
>  $BODY$
>   LANGUAGE 'plpgsql' VOLATILE

Creé esta función y las dos tablas mencionadas en ella y me funciona
perfectamente:
create table bloq (cod_cli int, esta int);
create table ctr_alt (cod_cli int);

Hice dos pequeños cambios a la función: uno es que el : al final de la
línea 9 debe cambiarse por un ;

El otro es que el SELECT de la línea 6 debe cambiarse por un PERFORM.

Luego de eso, la función anda bien. Sospecho que tu problema puede ser
que la tabla tiene nombre con mayúsculas, o bien que está en otro
esquema, o algún otro error de piloto por el estilo.

--
Alvaro Herrera                        http://www.advogato.org/person/alvherre
"MySQL is a toy compared to PostgreSQL." (Randal L. Schwartz) (http://archives.postgresql.org/pgsql-general/2005-07/msg00517.php )



------------------------
Manuel Diego Paillafil Gamboa
[email protected]
Móvil: 06 - 801 60 24




Responder a