drop table if exists test2; CREATE TABLE test2(i integer, txt text); alter table test2 alter column txt set storage external; insert into test2 values (1, lpad('x', 3000)); insert into test2 values (2, lpad('x', 3000)); DO $$ DECLARE r record; t text; BEGIN FOR r in (SELECT i FROM test2) LOOP select txt into t from test2 where i=r.i; COMMIT; END LOOP; END; $$;