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

Responder a