[firebase-br] FOR EXECUTE STATEMENT não usa PLAN?

dvdmengarda em hotmail.com dvdmengarda em hotmail.com
Sex Jun 9 11:19:42 -03 2006


Ok...

Aparentemente conseguí resolver o problema da seguinte forma:

1. Executei a consulta no ibexpert e copiei o PLAN que ele gera para a 
consulta;
2. Alterei a SP acrescentando em v_script exatamente o PLAN que o ibexpert 
mostrou.
3. Executei a SP e nos 2 casos em que fiz a modificação o problema foi 
resolvido.
4. Minha conclusão: O FB não conseguiu determinar o PLAN por falta de 
informações na criação da SP, pois ele não valida a string em v_script para 
saber qual plan poderia executar. Talvez não seja nada disso, mas...


Valew.

dvd

----- Original Message ----- 
From: <dvdmengarda em hotmail.com>
To: <lista em firebase.com.br>
Sent: Friday, June 09, 2006 10:09 AM
Subject: [firebase-br] FOR EXECUTE STATEMENT não usa PLAN?


Olá pessoal,

Gostaria de saber se existe alguma restrição no EXECUTE STAMENT no que diz 
respeito aos PLAN´s. No IBExpert utilizando minha SP com esse método as 
consultas simplesmente travam de tão demoradas que ficam. Fazendo o teste 
mudando para um FOR SELECT ele funciona normalmente. Existe um limite para o 
tamanho da string para ser executada pelo FOR EXECUTE STAMENT?

FOR EXECUTE STAMENT:
v_script = 'select t.dataemissao, t.numerotitulo, t.parcela, t.codigoorigem, 
t.origemtitulo, t.codigocliente, c.contacontabil, t.valorcredito, 
t.valorliquidado, t.valorparcela, t.valoracresc, t.valordescontos, 
t.valordespesas, t.valorfrete, t.valorjuros, t.valormora, t.valormulta, 
t.valorcreditado from ctarec t left join cadcli c on (c.codigo = 
t.codigocliente) where (t.dataliquidacao = ''' || :v_data || ''') and 
(t.contarecebimento = ' || :v_contacobranca || ') and (t.tipotitulo = ' || 
:v_tipotitulo || ') and (t.tipoliquidacao = 4)';

for execute statement v_script into ....


FOR SELECT:
for select  t.dataemissao, t.numerotitulo, t.parcela, t.codigoorigem, 
t.origemtitulo, t.codigocliente, c.contacontabil, t.valorcredito, 
t.valorliquidado, t.valorparcela, t.valoracresc, t.valordescontos, 
t.valordespesas, t.valorfrete, t.valorjuros, t.valormora, t.valormulta, 
t.valorcreditado from ctarec t left join cadcli c on (c.codigo = 
t.codigocliente) where (t.dataliquidacao = :v_data) and (t.contarecebimento 
= :v_contacobranca) and (t.tipotitulo = :v_tipotitulo) and (t.tipoliquidacao 
= 4) into ...



Grato.




______________________________________________
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