Julio Cesar Rodriguez Dominguez wrote:
1.- Las cadenas van encerradas en comillas simples, no doble comillas
2.- el operador == no existe
3.- Si lanzas una excepción, se aborta el proceso de la función.
He ajustado la función y ahora queda así:
DECLARE myvar record;
BEGIN
SELECT 'Material'.'estado_del_prestamo' INTO myvar FROM 'Material'
WHERE 'Material'.'ID_Material' = $1;
RETURN myvar;
IF (myvar.estado_del_prestamo = 'no_prestado') THEN
INSERT INTO 'Material Prestamo' VALUES($1,$2);
INSERT INTO 'Prestamo' VALUES($2,$3,$4,$5,$6,$7,$8,$9,$10);
UPDATE 'Material' SET 'Material'.estado_del_prestamo = 'prestado';
END IF;
END
Pero ahora me arroja este error siempre que trato de ejecutarla:
ERROR: error de sintaxis en o cerca de «.» at character 18
QUERY: SELECT 'Material'.estado_del_prestamo FROM 'Material' WHERE
'Material'.ID_Material = $1
CONTEXT: SQL statement in PL/PgSQL function "RealizarPrestamo" near line 3
Me huele que algo tiene que ver con las comillas simples ('). Cuando las
tenía doble se ejecutaba sin problema alguno lo que jamás me insertó o
actualizó los datos.
Un saludo
--
TIP 1: para suscribirte y desuscribirte, visita
http://archives.postgresql.org/pgsql-es-ayuda