Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/05/2009, 09:08
cacr
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 18 años, 8 meses
Puntos: 7
consultar una vista con pase de parámetros?

Saludos

Quiero hacer una vista que se filtra según un campo, de manera que, en el WHERE, en vez de pasar un elemento fijo, pase una variable según el usuario que se conecta:
Código:
SELECT solicitudviatico.*, (fecha_retorno-fecha_salida+1) AS duracion, (apellido||', '||nombre) AS nomb, funcionarios.apellido, funcionarios.nombre 
FROM solicitudviatico 
INNER JOIN funcionarios ON solicitudviatico.cedula = funcionarios.cedula 
WHERE (substring(codigo_solicitud FROM 6 FOR 3) = '$1') 
ORDER BY (substring(codigo_solicitud from 10)::int) DESC
¿cómo es posible?

Lo que he hecho es una vista sin la clausula WHERE, luego una función (según [1]):
Código:
CREATE OR REPLACE FUNCTION consulta_viaticos(ngerencia character varying)
  RETURNS SETOF viaticos_solicitados AS
$BODY$
SELECT * 
FROM viaticos_solicitados
WHERE (substring(codigo_solicitud FROM 6 FOR 3) = '$1') 
$BODY$
  LANGUAGE 'sql' VOLATILE;
Para luego lanzar una consulta:
Código:
select consulta_viaticos('GID')
Pero esta última consulta no me devuelve nada, dice que no consigue registros

[1]: http://archives.postgresql.org/pgsql...1/msg00483.php
__________________
Gracias de todas todas
-----
Linux!

Última edición por cacr; 18/05/2009 a las 09:44 Razón: agrego información