Re: Función que no me inserta los datos

From: Reynier Pérez Mira <rperezm(at)uci(dot)cu>
To: Julio Cesar Rodriguez Dominguez <jurasec(at)gmail(dot)com>
Cc: posgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Función que no me inserta los datos
Date: 2009-06-19 14:26:28
Message-ID: 4A3BA014.6010101@uci.cu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Julio Cesar Rodriguez Dominguez wrote:
> ese return antes del if, no debe ir ahí, ya que al llegar a ese punto
> la función termina. Pasalo hasta abajo despues del end if.

Finalmente, gracias a la ayuda de Cesar Erices he logrado solucionar el
problema. Ahora la función me quedó de la siguiente forma:

CREATE OR REPLACE FUNCTION "public"."RealizarPrestamo" ("ID_Material"
integer, id_prestamo integer, "Tipo" char, "Horario" char,
"Nombre_Solicitante" char, "Apellidos_Solicitante" char,
"Solapin_Solicitante" integer, "Datos_Material_Prestado" char,
"Tipo_Material_Solicitado" char, "Fecha" char) RETURNS boolean AS
$body$
DECLARE myvar character varying(100);
BEGIN
SELECT "Material"."estado_del_prestamo" INTO myvar FROM "Material"
WHERE "Material"."ID_Material" = $1;
IF (myvar = 'no_prestado') THEN
INSERT INTO "Prestamo" VALUES($2,$3,$4,$5,$6,$7,$8,$9, $10);
UPDATE "Material" SET estado_del_prestamo = 'prestado' WHERE
"Material"."ID_Material" = $1;
IF NOT FOUND THEN
RETURN FALSE;
END IF;
RETURN TRUE;
END IF;
RETURN FALSE;
END;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

Un saludo y gracias a todos los que se tomaron el trabajo de ayudar

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Luis Fernando Curiel Cabrera 2009-06-19 14:51:57 Openbravo Postgres
Previous Message Felipe Hernández 2009-06-19 14:17:31 Re: Select filtrando filas repetidas.