Re: Problema con IF NOT FOUND en función plpgsql

From: Alvaro Herrera <alvherre(at)commandprompt(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-19 13:42:47
Message-ID: 20060419134246.GA23169@surnet.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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

Aparentemente esta asignando NULL a la variable "valor" si no encuentra
ninguna coincidencia en la consulta. Prueba asi:

> 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;
otro_valor INTEGER;
> postgres$# BEGIN
> postgres$# SELECT INTO otro_valor id FROM foo WHERE id = $1;
> postgres$# IF NOT FOUND THEN
> postgres$# RETURN valor;
> postgres$# END IF;
> postgres$# RETURN otro_valor;
> postgres$# END;
> postgres$# $$ LANGUAGE plpgsql IMMUTABLE SECURITY DEFINER;

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message WILLIAM PARRA 2006-04-19 14:02:07 Re: Es posible un Link entre Oracle y Postgresql?
Previous Message Andres Serrano 2006-04-19 12:48:56 Re: Eliminar procesos lanzados por un cliente