0

This is the selection I want to make:

select figurita.codigo,figurita.imagen, jugadores.nombre, jugadores.apellidos, jugadores.numero,jugadores.peso,jugadores.altura,jugadores.fechanac,
posiciones.nombre as posicion,paises.nombre as pais ,selecciones.codigofifa, grupos.nombre as grupo
from figurita 
inner join jugadores  on jugadores.id=figurita.jugadorid
inner join posiciones on posiciones.id= jugadores.posicionid
inner join selecciones on selecciones.id=jugadores.seleccionid
inner join paises on paises.id=selecciones.paisid
inner join grupos on grupos.id=selecciones.grupoid
where figurita.codigo='AAA-005';

And this is the function I'm trying to do:

create or replace function get_figura5(codigo_input varchar)returns 
table (codigo varchar,imagen varchar,nombre varchar, apellidos varchar, numero int,peso int, altura int, fechanac date, posicion varchar, pais varchar, codigofifa varchar, grupo varchar)

as $$ 
begin
  select figurita.codigo,figurita.imagen, jugadores.nombre, jugadores.apellidos, jugadores.numero,jugadores.peso,jugadores.altura,jugadores.fechanac,
  posiciones.nombre as posicion,paises.nombre as pais ,selecciones.codigofifa, grupos.nombre as grupo
  from figurita 
  inner join jugadores  on jugadores.id=figurita.jugadorid
  inner join posiciones on posiciones.id= jugadores.posicionid
  inner join selecciones on selecciones.id=jugadores.seleccionid
  inner join paises on paises.id=selecciones.paisid
  inner join grupos on grupos.id=selecciones.grupoid
  where figurita.codigo=codigo_input;
end;
$$
language plpgsql;

and when I execute the procedure I get this error, I understand that the problem is in the return but I do not know what kind of data to put there

select * from get_figura5('AAA-001');

returns error message

Failed to run sql query: query has no destination for result data

1 Answer 1

1

Either:

  • Mark your function language sql, or
  • Add RETURN before SELECT to return the output of the query.

In PL/pgSQL, the output of SELECT must go somewhere (usually a variable). In SQL, it’s implied the output is returned.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.