[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