Problema con IF NO T FOUND en función plpgsql

From: Sebastián Villalba <sebastian(at)fcm(dot)unc(dot)edu(dot)ar>
To: "Lista Ayuda Pgsql" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Problema con IF NO T FOUND en función plpgsql
Date: 2006-04-19 02:24:21
Message-ID: 20060419021957.M12602@fcm.unc.edu.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola a todos. Les muestro con un ejemplito lo que necesito, creo que está todo
bien y aún asi no funciona:

postgres=# CREATE TABLE foo (id INTEGER, nombre VARCHAR(50));
CREATE TABLE
postgres=# INSERT INTO foo VALUES (1,'Algún nombre');
INSERT 0 1
postgres=# CREATE OR REPLACE FUNCTION prueba(integer) RETURNS integer AS $$
postgres$# DECLARE
postgres$# valor INTEGER := 33;
postgres$# BEGIN
postgres$# SELECT INTO valor id FROM foo WHERE id = $1;
postgres$# IF NOT FOUND THEN
postgres$# RETURN valor;
postgres$# END IF;
postgres$# RETURN valor;
postgres$# END;
postgres$# $$ LANGUAGE plpgsql IMMUTABLE SECURITY DEFINER;
CREATE FUNCTION
postgres=# SELECT * FROM prueba(1);
prueba
--------
1
(1 fila)

postgres=# SELECT * FROM prueba(12);
prueba
--------

(1 fila)

Aquí debería devolverme el valor 33 o yo estoy haciendo muy mal?. Saludos...
-
-------------------------------------------
Sebastián Villalba
sebastian(at)fcm(dot)unc(dot)edu(dot)ar
-------------------------------------------

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Sebastián Villalba 2006-04-19 02:50:50 Re: Problema con IF N=?ISO-8859-1?Q?OT_FOUND_en_funci=F3?=n plpgsql
Previous Message Juan Martínez 2006-04-19 00:56:12 Re: traspasar data de Oracle a Postgres