Ver Mensaje Individual
  #15 (permalink)  
Antiguo 10/08/2010, 11:22
Avatar de death_nemesis
death_nemesis
 
Fecha de Ingreso: abril-2009
Ubicación: Santiago - Chile
Mensajes: 147
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: return select

ya mira esto quedo así

Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION prueba(idTaller INTEGER, aliasCompania text,OUT VehiculosTaller BIGINT,OUT CapacidadTaller SMALLINT) RETURNS SETOF RECORD AS $BODY$
  2. DECLARE
  3.     use_sql TEXT;
  4. BEGIN  
  5. use_sql := 'select count(VEHICULOS.id_vehiculo)as VehiculosTaller,locales.capacidad_instalada as CapacidadTaller from SINIESTROS,COMPANIAS,VEHICULOS,LOCALES,TALLERES
  6. where SINIESTROS.id_compania = COMPANIAS.id_compania and SINIESTROS.id_vehiculo = VEHICULOS.id_vehiculo and VEHICULOS.id_estado <> 12 and
  7. VEHICULOS.id_local   = LOCALES.id_local and LOCALES.id_taller = TALLERES.id_taller and TALLERES.id_taller = '||idTaller||' and
  8. COMPANIAS.alias = upper('||aliasCompania||') group by locales.capacidad_instalada UNION ALL
  9. select count(VEHICULOS.id_vehiculo),locales.capacidad_instalada from SINIESTROS,COMPANIAS,VEHICULOS,LOCALES,TALLERES
  10. where SINIESTROS.id_compania = COMPANIAS.id_compania and SINIESTROS.id_vehiculo = VEHICULOS.id_vehiculo and VEHICULOS.id_estado <> 12 and
  11. VEHICULOS.id_local = LOCALES.id_local and LOCALES.id_taller = TALLERES.id_taller and TALLERES.id_taller = '||idTaller||' and COMPANIAS.alias <> upper('||aliasCompania||')
  12. group by locales.capacidad_instalada';
  13. raise notice 'Running query: %', use_sql;
  14. RETURN QUERY EXECUTE use_sql;  
  15. END;
  16. $BODY$
  17. LANGUAGE plpgsql;
  18.  
  19. SELECT * FROM prueba (7,'xxx');

pero me da un error me sale lo siguiente

ERROR: column "xxx" does not exist
LINE 4: COMPANIAS.alias = upper(xxx)

siendo que el xxx es un valor de un alias que existe en la bd y no es una columna entonces no se por que me da ese error