Postgres调用void函数

时间:2014-04-02 07:18:31

标签: postgresql plpgsql postgresql-9.2

我有一个void plsql函数:

CREATE OR REPLACE FUNCTION do_something(p_id BIGINT) 
RETURNS void
AS $$
BEGIN
   insert ....
END;
$$ LANGUAGE plpgsql SECURITY DEFINER;

我想从另一个plsql函数调用此函数,但在查询中如下:

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

当我运行sproc时,我得到:

  

错误:查询没有结果数据的目的地提示:如果您愿意   丢弃SELECT的结果,改为使用PERFORM。

是否可以将void函数作为select语句的一部分调用?

1 个答案:

答案 0 :(得分:4)

  

提示:如果要放弃SELECT的结果,请改用PERFORM。

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

PERFORMSELECT的PL / PgSQL替代品,当你想要抛弃结果时。它不能在PL / PgSQL之外使用。有关详细信息,请参阅手册。