我正在尝试integer[]在 plpgsql 函数中遍历整数数组 ( )。像这样的东西:
declare a integer[] = array[1,2,3]; i bigint; begin for i in a loop raise notice "% ",i; end loop; return true; end
在我的实际用例中,整数数组a作为参数传递给函数。我收到此错误:
ERROR: syntax error at or near "$1" LINE 1: $1
如何正确循环数组?
DO $do$ DECLARE a integer[] := array[1,2,3]; i integer; -- int, not bigint BEGIN FOR i IN 1 .. array_upper(a, 1) LOOP RAISE NOTICE '%', a[i]; -- single quotes END LOOP; END $do$;
或者FOREACH在 PostgreSQL 9.1 或更高版本中更简单:
FOREACH i IN ARRAY a LOOP RAISE NOTICE '%', i; END LOOP;