El día 27 de enero de 2009 18:33, Gilberto Castillo Martínez <gilberto.casti...@etecsa.cu> escribió: > El mar, 27-01-2009 a las 14:45 -0500, yanguma escribió: >> >> Buenas tardes >> >> Quiero solicitarle ayuda para le creación de una vista que reciba >> parametros, estuve leyendo el tema en correos anteriores, pero no >> entiendo la solucciion o estoy bloqueado.. >> >> La pregunta concreta es >> >> Tengo una vista que me obtiene los datos de una base de datos de 1 >> millon de registro, esa vista tiene un campo que es el periodo, los >> informes o lo que el usuario final desea ver se base en esta consulta, >> pero siempre ve toda la información y no la que necesita, entonces >> opte por pasarle parmetros atravez de una tabla que toma los datos que >> el usuario consulta.. Esta es la forma correcta? >> >> O existe otra forma.. me la pueden explicar? > > Te puedes hacer una función donde le pases de parametro el campo de > criterio a buscar y la salida los registros que realmente le interesa a > cada usuario > > Algo así: > > CREATE OR REPLACE FUNCTION listarcampo(periodo text) > RETURNS SETOF tu_tabla AS > $BODY$ > select * from tu_tabla > where case when $1 is not null then periodo like '%' || $1 || > '%' else true end; > $BODY$ > LANGUAGE 'sql' VOLATILE; > >> >> Gracias >> > > -- > TIP 2: puedes desuscribirte de todas las listas simultáneamente > (envía "unregister TuDirecciónDeCorreo" a majord...@postgresql.org) >
Otra opción es prepare statements. Pero te aconsejo que realices explain analyze antes de poner en producción. Los prepare pueden recibir parametros y suelen ser interesantes opciones para consultas pre armadas. -- Emanuel Calvo Franco ArPUG / AOSUG Member Postgresql Support & Admin -- TIP 8: explain analyze es tu amigo