Boa Tarde Charles,

Entendo muito pouco de python, mas vamos ver se eu consigo te ajudar.

você tem o type greeting com 2 campos, o teu return (independente de qual pl
estiver usando, até onde eu sei) deve ficar assim:
*return (v1, v2);*

portanto aqui você está passando dois valores:
 return ( *[how,"World"]* ,* [how," PostgreSQL"]* )

e aqui somente um:
 return ( *[how,"World"]* )

Espero ter ajudado.

Rafael Domiciano

On Fri, May 22, 2009 at 11:38 AM, Charles Souza Silva <
[email protected]> wrote:

> Pessoal estou aprendendo pl/python. Estou fazendo esse exemplo do manual
> do postgresql:
>
>
> CREATE TYPE greeting AS
>   (how text,
>    who text);
>
>
> create or replace function greet (how text)
> returns setof greeting
> AS $BODY$
>  return ([how,"World"],[how,"PostgreSQL"])
> $BODY$ LANGUAGE plpythonu;
>
>
> Quando executo  Select greet('Ola') ele retorna (Ola,World) e
> (Ola,PostgreSQL) certinho.
>
>
> Agora se eu colocar a funcao dessa forma:
>
>
> create or replace function greet (how text)
> returns setof greeting
> AS $BODY$
>  return ([how,"World"])
> $BODY$ LANGUAGE plpythonu;
>
>
>
> E executar o mesmo comando "Select greet('Ola')" dá erro :
>
> returned sequence's length must be same as tuple's length
>
>
> Porque esse erro? Nao pode retornar só uma linha de retorno?
>
>
> Charles
>
>
>
> _______________________________________________
> 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