Opa,

É possível sim.

De uma olhada no seguinte exemplo:

CREATE FUNCTION soma(INTEGER,INTEGER)

RETURNS INTEGER AS $$

    SELECT $1+$2;

$$ LANGUAGE SQL;

CREATE FUNCTION multiplicacao(INTEGER,INTEGER,INTEGER)

RETURNS INTEGER AS $$

DECLARE

    resultado_soma INTEGER NOT NULL:=soma($1,$2);

BEGIN

    RETURN resultado_soma*$3;

END;

$$ LANGUAGE PLPGSQL;


SELECT multiplicacao(2,2,5);

Em 4 de maio de 2011 15:47, Cesar Pedroso <[email protected]> escreveu:

> Bom mudanças de ultima hora de como executar os scripts estou analizando as
> possibilidades.
>
> Opa obrigado a ajuda vou testar aqui.
>
>
> On Wed, May 4, 2011 at 3:34 PM, Juliano Benvenuto Piovezan <
> [email protected]> wrote:
>
>> 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
>>
>>
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>

Abraços
-- 
JotaComm
http://jotacomm.wordpress.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a