[firebase-br] Problema c/ SP e/ou IBExpert!!!!

Cícero Silva Foscarini cicero em puxtreme.com.br
Qui Abr 17 08:22:26 -03 2008


Entao quer dizer que usando Execute statment nao se usa a grande 
vantagem que comandos precompilaros?

Abracos.

Carlos H. Cantu (TeamFB) escreveu:
> A mensagem de erro é clara: em alguma situação especifica, o comando
> dinâmico que foi montado está retornando um dado de tipo diferente
> da variável onde está sendo atribuído.
> 
> O execute statment não pode ser validado no momento de compilação da
> procedure, pois o comando a ser executado pode mudar a cada execução.
> 
> []s
> Cantu (Membro do TeamFB - FireBase)
> http://www.warmboot.com.br
> FireBase - http://www.FireBase.com.br
> Blog - http://blog.firebase.com.br
> 
> CSF> bah, ninguem?????
> 
> CSF> Roger escreveu:
>>> A Stored procedure abaixo está compilada e tudo mais, só que as vezes, 
>>> conforme a data que passo por parâmetro dá o seguinte erro:
>>>
>>>
>>> Unsuccessful execution caused by an unavailable resource
>>> Variable type (position 0) in EXECUTE STATEMENT 'SELECT 
>>> AREA_ID,OPERACAO_ID,INTO does not match returned column type.
>>> At procedure 'CONSULTA_TIP'.
>>>
>>>
>>> A tabela PROCESSADOS tem 800 mil registros.
>>>
>>> ______
>>>
>>>
>>> SET TERM ^ ;
>>>
>>> CREATE PROCEDURE CONSULTA_TIP (
>>>     turno varchar(5),
>>>     inicio timestamp,
>>>     fim timestamp)
>>> returns (
>>>     id_operacao varchar(10),
>>>     limite bigint,
>>>     transporte bigint,
>>>     total bigint,
>>>     minutos bigint,
>>>     excedidos bigint,
>>>     ciclos bigint,
>>>     id_area bigint)
>>> as
>>> BEGIN
>>>   FOR EXECUTE STATEMENT
>>>     'SELECT AREA_ID,OPERACAO_ID,
>>>            AVG(DURACAO) TOTAL,
>>>            AVG(TRANSPORTE) TRANSPORTE,
>>>            AVG(LIMITE) LIMITE,
>>>            CASE WHEN COUNT(1) > 1 THEN COUNT(1) ELSE 0 END CICLOS,
>>>            SUM(CASE WHEN EXCEDIDO > 0 THEN 1 ELSE 0 END) EXCEDIDOS,
>>>            SUM(EXCEDIDO) MINUTOS
>>>
>>>     FROM PROCESSADOS
>>>     WHERE ((INICIO >= ''' || :INICIO || ''') AND (TERMINO <= ''' || :FIM || 
>>> ''')) AND TURNO IN (' || :TURNO || ')
>>>
>>>     GROUP BY AREA_ID,OPERACAO_ID'
>>>     INTO :ID_AREA,
>>>          :ID_OPERACAO,
>>>          :TOTAL,
>>>          :TRANSPORTE,
>>>          :LIMITE,
>>>          :CICLOS,
>>>          :EXCEDIDOS,
>>>          :MINUTOS
>>>   DO
>>>   BEGIN
>>>     SUSPEND;
>>>   END
>>> END^
>>>
>>> SET TERM ; ^
>>>
>>> GRANT EXECUTE ON PROCEDURE CONSULTA_TIP TO SYSDBA; 
>>>
>>>
>>>
>>> ______________________________________________
>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>
> 
> 
> CSF> ______________________________________________
> CSF> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> CSF> Para saber como gerenciar/excluir seu cadastro na lista, use:
> CSF> http://www.firebase.com.br/fb/artigo.php?id=1107
> CSF> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> 
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> 





Mais detalhes sobre a lista de discussão lista