Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/03/2011, 13:23
cacr
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 18 años, 8 meses
Puntos: 7
plpgsql: filtrar una consulta según otra consulta

Saludos

Estoy tratando de hacer una consulta y dependiendo de su resultado, hacer una u otra (segunda) consulta... todo dentro de una función, tal como:

Código:
CREATE OR REPLACE FUNCTION consultar_menu(id_usuario int) RETURNS SETOF menu_permisos AS $$
 DECLARE
   e boolean;
   r menu_permisos%rowtype;
 BEGIN
   e := $S$ SELECT * FROM cc1.usuarios WHERE id = $1$S$;
   IF e.primerizo = true THEN
     RETURN QUERY SELECT * FROM menu_permisos WHERE id_usuario = $1 AND menu.id < 10;
   ELSE
     RETURN QUERY SELECT * FROM menu_permisos WHERE id_usuario = $1;
   END IF;
 END;
$$ LANGUAGE plpgsql;
Pero... seguro, no es así... de entrada me da error de sintaxis:
Código:
ERROR:  la sintaxis de entrada no es válida para tipo boolean: « SELECT * FROM cc1.usuarios WHERE id = $1»
CONTEXT:  PL/pgSQL function "consultar_menu" line 6 at assignment
__________________
Gracias de todas todas
-----
Linux!