Executor de SQL e DML

Como criar uma function ou procedure no PostgreSQL usando o UTL_DB_SQL ?

RTDBUT.UTL_DB_SQL.FAQ-28600
A interface RTDBUT.UTL_DB_SQL permite executar DDL mas ela se confundo com as linhas terminadas em ";" que são comuns na criação de function/procedure. Para resolver isso, basta remover todas as quebras de linha e fazer com que toda a definição seja realizada em uma única linha.

Exemplo

Ao invés de
CREATE OR REPLACE FUNCTION dobro(p1 bigint) RETURNS bigint
AS $BODY$
BEGIN
   return p1 * 2;
END;
$BODY$ LANGUAGE plpgsql;

Usar:
CREATE OR REPLACE FUNCTION dobro(p1 bigint) RETURNS bigint AS $BODY$ BEGIN return p1 * 2; END; $BODY$ LANGUAGE plpgsql;