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
