1

I want to implement a loop inside a function but I receive this error:

ERROR query has no destination for result data

The code:

CREATE OR REPLACE FUNCTION  my_function(ill int, ndx_ bigint) RETURNS int AS
$$
DECLARE
    found_id int;
BEGIN
    FOR found_id IN 1..25 LOOP
        SELECT 1;
    END LOOP;
    RETURN 1;
END;
$$ LANGUAGE plpgsql;

SELECT my_function( 0,79 );

Why? How to fix it?

Erwin Brandstetter
  • 605,456
  • 145
  • 1,078
  • 1,228
Vyacheslav
  • 26,359
  • 19
  • 112
  • 194

1 Answers1

2

The manual:

Sometimes it is useful to evaluate an expression or SELECT query but discard the result, for example when calling a function that has side-effects but no useful result value. To do this in PL/pgSQL, use the PERFORM statement:

PERFORM query;

Unless you assign the result, replace

SELECT 1;

with

PERFORM 1;
Erwin Brandstetter
  • 605,456
  • 145
  • 1,078
  • 1,228