This generic set a variable and print it script doesn't work but works in PGAdmin. his looks like a PostGres compatibility issue.
SYNTAX ERROR NEAR VARCHAR:
DO $$ DECLARE counter INTEGER := link text1;
first_name VARCHAR(50) := 'John';
last_name VARCHAR(50) := 'Doe';
payment NUMERIC(11,2) := 20.5;
BEGIN
RAISE NOTICE '% % % has been paid % USD', counter, first_name, last_name, payment;
END $$;