El error es cuando ejecuto el procedure, ni cuando lo creo me da errores, solo al hacer select prueba('5');
Mis tablas
Código SQL:
Ver originalCREATE TABLE cfg_ima_rutas
(
id INTEGER NOT NULL DEFAULT NEXTVAL('ima_rutas_id_seq'::regclass),
ruta text,
tipo INTEGER,
porcentaje INTEGER,
marca INTEGER
)
CREATE TABLE cfg_ima_marcas
(
id INTEGER NOT NULL DEFAULT NEXTVAL('cfg_ima_marcas_id_seq'::regclass),
ruta text,
proporcion INTEGER
)
Este es mi procedure
Código SQL:
Ver originalCREATE OR REPLACE FUNCTION prueba(IN id_num INTEGER)
RETURNS TABLE(ruta text, tipo INTEGER, porcentaje INTEGER, marca INTEGER) AS
'DECLARE
marca_opcion integer;
BEGIN
marca_opcion="SELECT cfg_ima_rutas.marca FROM cfg_ima_rutas WHERE cfg_ima_rutas.id="||id_num;
IF(marca_opcion>0) THEN
RETURN QUERY
SELECT
cfg_ima_rutas.ruta, cfg_ima_rutas.tipo, cfg_ima_rutas.porcentaje, cfg_ima_rutas.marca, cfg_ima_marcas.ruta, cfg_ima_marcas.proporcion
FROM cfg_ima_marcas JOIN cfg_ima_rutas ON (cfg_ima_marcas.id = cfg_ima_rutas.marca) WHERE cfg_ima_rutas.id=id_num;
ELSE
RETURN QUERY
SELECT
cfg_ima_rutas.ruta, cfg_ima_rutas.tipo, cfg_ima_rutas.porcentaje, cfg_ima_rutas.marca
FROM cfg_ima_rutas WHERE cfg_ima_rutas.id=id_num;
END IF;
END;'
LANGUAGE plpgsql
no me da errores ni al insertar las tablas ni el procedure, solo cuando ejecuto el procedure
Código BASH:
Ver originalERROR: column "SELECT cfg_ima_rutas.marca FROM cfg_ima_rutas WHERE cfg_ima_rut" does not exist
LINE 1: SELECT "SELECT cfg_ima_rutas.marca FROM cfg_ima_rutas WHERE ...
^
QUERY: SELECT "SELECT cfg_ima_rutas.marca FROM cfg_ima_rutas WHERE cfg_ima_rutas.id="||id_num
CONTEXT: PL/pgSQL function prueba(integer) line 4 at assignment