循环语句 循环会通过计算expression 得到的数组的个体元素进行迭代。 teledb CREATE OR REPLACE PROCEDURE pforeachslice1() AS $$ DECLARE vrandomarr float8[][]:ARRAY[ARRAY[random(),random()],ARRAY[random(),random()]]; vrandom float8[]; BEGIN FOREACH vrandom SLICE 1 IN ARRAY vrandomarr LOOP RAISE NOTICE '%',vrandom ; END LOOP; END; $$ LANGUAGE plpgsql; CREATE PROCEDURE teledb CALL pforeachslice1(); NOTICE: {0.248282201588154,0.757913041394204} NOTICE: {0.0194511725567281,0.43799454299733} CALL 通过一个正SLICE 值,FOREACH 通过数组的切片而不是单一元素迭代。