Em 28/08/2015 7:50 PM, "JotaComm" <[email protected]> escreveu:
>
> Boa noite!​
>
> Em 27 de agosto de 2015 23:08, Bruno Silva <[email protected]>
escreveu:
>>
>> Alguém já teve de criar alguma função que segue o seguinte conceito:
>>
>> CREATE TYPE tp_conta AS (
>>    id_conta int,
>>    valor numeric(12,4)
>> )
>>
>> CREATE TABLE t_colecaoContas OF tp_conta (
>>             PRIMARY KEY (id_conta),
>>             quantidadeEconomias WITH OPTIONS DEFAULT 1000
>>  );
>>
>>
>> CREATE OR REPLACE FUNCTION minha_funcao (id_pessoa integer,
r_contasPessoa Out t_colecaoContas, r_mensagem Out text)  RETURNS RECORD AS
$body$
>> ...
>> ...
>> INSERT INTO t_ColecaoContas ( id_conta, valor ) values ( 10,100);
>> ....
>> RETURN;
>> $body$
>> LANGUAGE PLPGSQL
>> ;
>>
>>
>> Apesar da função passar normal ao ser chamada, ela não tras nenhum
resultado.
>> Estou fazendo da forma correta?
>> Preciso retornar essa 'coleção' e a mensagem de erro para o programa.
>>
>> Estou usando Postgres 9.3.
>
> ​
>
> Você realmente precisa criar um tipo de dados? Por que não usar um RETURN
TABLE nomedatabela?
Não posso, na verdade é uma adaptação para um sistema que já trabalha com
Oracle e está evoluindo para Postgres. Por isso não posso mudar tanto a
forma de chamada, pois ele tem de retornar a tabela e um varchar que tem
mensagens de erro.

>
> Como você fez a chamada da função?
Não sei se entendi sua pergunta...
CREATE OR REPLACE FUNCTION minha_funcao (id_pessoa integer, r_contasPessoa
Out t_colecaoContas, r_mensagem Out text)  RETURNS RECORD AS $body$ ...
>>
>>
>> Bruno E. A. Silva.
>>
>>
>> _______________________________________________
>> 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
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a