【发布时间】:2013-02-03 22:03:27
【问题描述】:
我有以下 plpgsql 程序;
DECLARE
_r record;
point varchar[] := '{}';
i int := 0;
BEGIN
FOR _r IN EXECUTE ' SELECT a.'|| quote_ident(column) || ' AS point,
FROM ' || quote_ident (table) ||' AS a'
LOOP
point[i] = _r;
i = i+1;
END LOOP;
RETURN 'OK';
END;
它的主要目标是遍历一个表并将该行的每个值存储在一个数组中。我还是 plpgsql 的新手。谁能指出错误,因为它给了我以下错误;
【问题讨论】:
-
您缺少
create function部分。你需要引用函数的主体,例如使用美元报价。详情请阅读手册。 -
我正在使用 postgis 的 GUI 来创建函数,所以不需要在函数代码中执行“创建函数”,因为它是自动完成的。 @a_horse_with_no_name
-
@IT_info “PostGIS 的 GUI”是指 PgAdmin-III 吗?这就是屏幕截图所暗示的。如果是这样,您能否逐步解释您如何尝试以这种方式创建函数?在我看来,周围的
CREATE [OR REPLACE] FUNCTION块确实没有被发送。也许看看底层的查询日志? -
问题是我将 sql 作为一种语言而不是 plpgsql 工作。感谢您的帮助
-
您还缺少
loop和end loop来定义for循环的范围。你也不能像你一样动态地使用表名或列名。
标签: sql postgresql postgis plpgsql