Postgres calling a void function

plpgsql, postgresql, postgresql-9.2

Solution

HINT: If you want to discard the results of a SELECT, use PERFORM instead.

PERFORM  do_something(m.id) 
FROM    MyTable m
WHERE   m.IsActive;

`PERFORM` is the PL/PgSQL alternative for `SELECT` for when you want to throw the results away. It cannot be used outside PL/PgSQL. For more information, see the manual.

Problem

I have a void plsql function: ``` CREATE OR REPLACE FUNCTION do_something(p_id BIGINT) RETURNS void AS $$ BEGIN insert .... END; $$ LANGUAGE plpgsql SECURITY DEFINER; ``` I want to call this function from another plsql function, but inside a query like: ``` SELECT do_something(m.id) FROM MyTable m WHERE m.IsActive; ``` When I run the `sproc` i get: ERROR: query has no destination for result data HINT: If you want to discard the results of a SELECT, use PERFORM instead. Is it possible to call a void function as part of a `select` statement?

Original source