2015-04-15 15:45 GMT-03:00 Matheus Saraiva <matheus.sara...@gmail.com>:

> Uma função deve inserir um registro em uma tabela e retornar a PK do
> registro inserido, porém, a PK da tabela é uma chave composta. Qual deve
> ser o tipo de retorno da função e como fazer o retormo?
>
> Exemplo:
>
> TBLCONTA
> ---------
> cliente integer PK
> tipoconta smallint PK
> banco varchar(30)
> agencia varchar(10)
> conta varchar(10)
>

Eu usaria parâmetros OUT, exemplo:

    CREATE FUNCTION sua_funcao(p_banco varchar, p_agencia varchar, p_conta
varchar, OUT p_cliente integer, OUT p_tipoconta smallint)
    LANGUAGE plpgsql AS $$
    BEGIN
        INSERT INTO tblconta(...)
        VALUES(....)
        RETURNING cliente, tipoconta INTO p_cliente, p_tipoconta
    END;
    $$;

Assim sua função retorna na saída os valores que estiverem em "p_cliente" e
"p_tipoconta", ou seja, ela irá retornar uma linha e duas colunas.

Atenciosamente,
-- 
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a