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)
--
TIP 2: puedes desuscribirte de todas las listas simultáneamente
    (envía "unregister TuDirecciónDeCorreo" a majord...@postgresql.org)

Responder a