From: | "Jaime Casanova" <systemguards(at)gmail(dot)com> |
---|---|
To: | Sebastián Villalba <sebastian(at)fcm(dot)unc(dot)edu(dot)ar> |
Cc: | "Lista Ayuda Pgsql" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Problema con IF NOT FOUND en función plpgsql |
Date: | 2006-04-21 00:13:35 |
Message-ID: | c2d9e70e0604201713p22d63f5ak6910554ec974ab89@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
> [...]
> > que pasa si ejecutas? no sera que si esta regresando un registro? y
> > lo que ocurre es que el valor de cupo efectivamente es NULL?
> >
> > SELECT cupo FROM actividad WHERE id = 4;
>
> test=# SELECT cupo FROM actividad WHERE id = 4;
> cupo
> ------
>
> (1 row)
>
si esta devolviendo una fila y por lo tanto FOUND esta siendo seteado a TRUE...
en lugar de
IF NOT FOUND THEN
usa
IF cupos IS NULL THEN
> La última versión de la función es ésta con idéntico resultado:
>
> DECLARE
> cupos INTEGER;
> BEGIN
> SELECT INTO cupos cupo FROM actividad WHERE id = $1; // Cupo para TODOS
> IF NOT FOUND THEN
> SELECT INTO cupos cupo FROM "cupoActividadPerfil" WHERE actividad_id = $1
> AND perfil_id = $2; // Cupos para algunos
> END IF;
> RETURN cupos;
> END;
>
> Esa actividad (id = 4) no tiene cupo máximo, pero no se pueden aceptar mas de
> 5 alumnos (perfil 7 = "alumnos") en la misma. Si la actividad tiene cupo no
> nulo, es para todos... eso es lo que controlo primero y ésta no tiene ningún
> cupo (es decir en éste caso "cupo IS NULL"). Entonces me fijo si tiene un cupo
> para el perfil informado (7 = alumnos) y eso es lo que hago en la segunda
> consulta. En éste caso, la actividad 4 no tiene mas lugar para el perfil 7,
> osea, me debería devolver 0. Saludos y nuevamente muchas gracias, espero que
> se entienda.
> -
> -------------------------------------------
> Sebastián Villalba
> sebastian(at)fcm(dot)unc(dot)edu(dot)ar
> -------------------------------------------
>
>
--
Atentamente,
Jaime Casanova
"What they (MySQL) lose in usability, they gain back in benchmarks, and that's
all that matters: getting the wrong answer really fast."
Randal L. Schwartz
From | Date | Subject | |
---|---|---|---|
Next Message | CANDIDO MANUEL ALVAREZ DIEGUEZ | 2006-04-21 06:55:52 | unsubscribe |
Previous Message | Leonel Nunez | 2006-04-20 23:37:42 | Re: Es posible un Link entre Oracle y Postgresql? |