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;