【发布时间】:2019-03-13 05:49:59
【问题描述】:
我正在尝试通过编写一些简单的程序来学习 PL/pgSQL。为了了解 FOREACH 循环,我写了以下内容:
CREATE OR REPLACE FUNCTION test(int[]) RETURNS void AS $$
DECLARE
window INT;
BEGIN
FOREACH window IN ARRAY $1
LOOP
EXECUTE 'SELECT $1' USING window;
END LOOP;
$$ LANGUAGE plpgsql;
SELECT test(ARRAY [30,60]);
我希望这段代码 sn-p 将首先打印30,然后再打印60。但是,我收到以下错误。
psql:loop.sql:11: ERROR: syntax error at end of input
LINE 7: EXECUTE 'SELECT $1' USING window;
^
psql:loop.sql:13: ERROR: function test(integer[]) does not exist
LINE 1: SELECT test(ARRAY [30,60]);
^
HINT: No function matches the given name and argument types. You might need
to add explicit type casts.
所以函数定义有语法错误,但我不明白错误是什么以及如何修复它。我会很感激任何帮助。谢谢!
【问题讨论】:
标签: postgresql plpgsql