在plpgsql中,我正在尝试测试计算。要在sql编辑器中查看结果,我可以执行以下操作:
select 3 * 5;
然后,当我在编辑器中突出显示代码并运行查询时,我得到的结果是“列”?的值为15。
但是如果创建这样的函数:
CREATE OR REPLACE FUNCTION do_something() RETURNS VOID AS $$
BEGIN SELECT 3 * 5; END;
$$ LANGUAGE PLPGSQL;
,然后突出显示并运行查询:
SELECT do_something();
我收到一条错误消息,说“查询没有结果数据的目的地”。
我只希望能够测试代码块并查看结果,即使它与表无关。最好的方法是什么?
答案 0 :(得分:0)
您的第一个错误是该函数声明为不返回任何内容return void
。如果要返回整数,则需要将其更改为return int
。
此外,在PL / pgSQL中,您需要使用return
返回值,而不是SELECT语句。
CREATE OR REPLACE FUNCTION do_something()
RETURNS int
AS $$
BEGIN
return 3 * 5;
END;
$$ LANGUAGE PLPGSQL;
请注意,对于像language SQL
函数这样的简单计算,由于PL / pgSQL确实有一些开销,因此效率更高。
CREATE OR REPLACE FUNCTION do_something()
RETURNS int
AS $$
select 3 * 5;
$$ LANGUAGE sql;