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

Responder a