On Wed, May 4, 2011 at 3:17 PM, Cesar Pedroso <[email protected]> wrote:
>
> CREATE OR REPLACE FUNCTION teste()
> RETURNS void AS
> $BODY$
> BEGIN
>
> SET search_path = xxx;
> SET default_tablespace = xxx;
>
> CREATE OR REPLACE FUNCTION FUNC1()
> RETURNS void AS
> $BODY$
> DECLARE
> vcount numeric(1);
> BEGIN
>
> END;
> $BODY$
> LANGUAGE 'plpgsql';
> select * from FUNC1();
> drop function FUNC1();
>
> RETURN;
> end; $BODY$
> LANGUAGE 'plpgsql' VOLATILE;
>
>
Usando a notação $$, você está fechando a declaração do corpo da função
teste() na linha 9. Dê uma olhada sobre a notação $ neste link [1].
Assim deve funcionar:
CREATE OR REPLACE FUNCTION teste()
RETURNS void AS
$BODYTESTE$
BEGIN
SET search_path = xxx;
SET default_tablespace = xxx;
CREATE OR REPLACE FUNCTION FUNC1()
RETURNS void AS
$BODYFUNC$
DECLARE
vcount numeric(1);
BEGIN
END;
$BODYFUNC$
LANGUAGE 'plpgsql';
select * from FUNC1();
drop function FUNC1();
RETURN;
end; $BODYTESTE$
LANGUAGE 'plpgsql' VOLATILE;
[1]
http://www.postgresql.org/docs/8.4/static/sql-syntax-lexical.html#SQL-SYNTAX-DOLLAR-QUOTING
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral