ta errado mesmo
vc tem que acessar os dados retornados de dentro do loop

ex:

for p in select * from pessoas loop
     minha_var := p.nome || ' é um bobo';
     return next reg;
end loop;


2006/10/20, tacio vilela <[EMAIL PROTECTED]>:
> Boa tarde pessoal.
>
> Estou utilizando a função abaixo:
>
>
> CREATE OR REPLACE FUNCTION calculacusto( varchar, varchar )
>   RETURNS RECORD AS
> $BODY$
>
>     ...
>
>         SELECT nome, tipoligacao, valor, regra INTO custos FROM operadoras,
> custotcnt WHERE (
>
>             ( operadoras.id = custotcnt.operadora ) AND
>             ( operadoras.grupo = grupo ) AND
>             ( operadoras.status = 1 AND custotcnt.status = 1 ) AND
>             ( custotcnt.tipoligacao =  tligacao )
>
>         ) ORDER BY custotcnt.valor;
>
>
>         RETURN custos;
>
> ...
>
> $BODY$
>   LANGUAGE 'plpgsql' VOLATILE;
>
>
> Mas, qdo a uso na minha trigger eu a uso assim:
>
> ...
>
> sql := 'SELECT * FROM calculacustotcnt( \'' || grupo ||'\', ';
> sql := sql || '\'' || tipo || '\' ) AS ';
> sql := sql || '( nome varchar, tipoligacao varchar, ';
> sql := sql || 'valor real, regra varchar )';
>
> FOR custos IN EXECUTE sql LOOP
> END LOOP;
>
> tarifatcnt := custos.valor;
> saida := custos.nome;
> intervalotcnt := substr( custos.regra, 4, 1 );
> basetcnt := substr( custos.regra, 1, 2 );
>
> .....
>
> O problema maior é que dá erro qdo acesso os campos das tabelas( e.g.:
> custos.nome) alguém pode me dar uma luz de como trabalhar a Dados retornados
> em Record por uma função?
>
>
> Desde já vlw.
>
>
> _______________________________________________
> Grupo de Usuários do PostgreSQL no Brasil
> Antes de perguntar consulte o manual
> http://pgdocptbr.sourceforge.net/
>
> Para editar suas opções ou sair da lista acesse a página da lista em:
> http://pgfoundry.org/mailman/listinfo/brasil-usuarios
>
>


-- 
Nabucodonosor Coutinho
Database Administrator
Accu Hosting - www.accuhosting.com
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

Responder a