[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