[firebase-br] Erro no SQL Dinamico

Renato Deggau rdeggau em epagri.sc.gov.br
Qui Jul 27 14:23:10 -03 2006


Carlos,

voce não está chamando esta procedure dentro de uma trigger do banco para
uma tabela que está sendo atualizada pela propria procedure?

Ou seja, voce muda uma tabela, a trigger é disparada, a trigger chama a
procedure e a procedure atualiza a propria tabela, reiniciando o processo?

Essa seria uma das explicações para TOO MANY RECURSION LEVELS OF EXECUTE
STATEMENT.

Renato Deggau

On 7/27/06, Suporte Sinapse Informática <suporte em sinapseinformatica.com.br>
wrote:
>
>   Senhores,
>
>   Eu criei uma procedure com SQL dinâmico. Ela retorna um erro que eu
> nunca vi. O código é simples. Vejam abaixo:
>
>       For
>         SELECT rNOME_TABELA FROM SP_CAMPOS_TABELA
>         WHERE rNOME_CAMPO='NUM_FRE'
>         Into :vNOME_TABELA
>       Do
>       Begin
>         rERROS=0;
>
>         vSQL='UPDATE '||:vNOME_TABELA||' SET
> NUM_FRE='''||:NUM_FRE_NOVO||''''||
>             ' WHERE NUM_FRE='''||:NUM_FRE_ANT||'''';
>
>         EXECUTE STATEMENT :vSQL;
>
>          WHEN SQLCODE -924 DO
>          BEGIN
>            rERROS = -924;
>            SUSPEND;
>          END
>       End
>
>   A procedure SP_CAMPOS_TABELA retorna as tabelas que possui o campo
> informado no campo rNOME_CAMPO. A procedure compila normalmente, porém
> durante a execução aparece o seguinte erro: TOO MANY RECURSION LEVELS OF
> EXECUTE STATEMENT.
>
>   Alguém tem alguma idéia?
>
>   Agradeço desde já pela ajuda,
>
>   CARLOS HENRIQUE MEIRELES
>   SUPORTE SINAPSE
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista