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
  • 539,169
  • 125
  • 977
  • 1,137
Vyacheslav
  • 25,010
  • 18
  • 105
  • 188

1 Answers1

2

The manual instructs:

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
  • 539,169
  • 125
  • 977
  • 1,137