Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/07/2016, 22:18
Rebuilding
 
Fecha de Ingreso: julio-2014
Mensajes: 161
Antigüedad: 10 años, 5 meses
Puntos: 4
Respuesta: Procedure PostgreSQL

Me doy cuenta que hay un error en el valor de retorno del procedure, por lo que he leido debo usar un valor de retorno polimorfico, como este, pero no me sale, alguien que me oriente

Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION prueba(IN id_num INTEGER)
  2.  RETURNS SETOF anyelement AS
  3. 'DECLARE
  4. marca_opcion integer;
  5. BEGIN
  6. marca_opcion="SELECT cfg_ima_rutas.marca FROM cfg_ima_rutas WHERE cfg_ima_rutas.id="||id_num;
  7.  
  8. IF(marca_opcion>0) THEN
  9. RETURN QUERY
  10.            SELECT
  11.        cfg_ima_rutas.ruta,  cfg_ima_rutas.tipo, cfg_ima_rutas.porcentaje, cfg_ima_rutas.marca, cfg_ima_marcas.ruta, cfg_ima_marcas.proporcion
  12.      FROM cfg_ima_marcas JOIN cfg_ima_rutas ON (cfg_ima_marcas.id = cfg_ima_rutas.marca) WHERE cfg_ima_rutas.id=id_num;
  13. ELSE
  14.    RETURN QUERY
  15.      SELECT
  16.         cfg_ima_rutas.ruta,  cfg_ima_rutas.tipo, cfg_ima_rutas.porcentaje, cfg_ima_rutas.marca
  17.      FROM cfg_ima_rutas WHERE cfg_ima_rutas.id=id_num;
  18. END IF;
  19.  
  20.  END;'
  21.   LANGUAGE plpgsql