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
-------------------------------------------
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 |