[firebase-br] Erro ao criar procedure: Too many Contexts ofRelation/Procedure/Views

Andrei Luís compuvale.software em gmail.com
Sex Jun 2 10:03:56 -03 2006


Bom dia Kléber,

Então, é o que estou fazendo e funcionou.

O apêndice VII do livro da Helen, fala sobre os limites do Firebird, e
fala que o tamanho máximo de módulos PSQL é de 48Kb em BLR. Colei
minha SP gigante no bloco de notas e salvei, ficou em 59,6 Kb... O
livro fala ainda que BLR é mais compacto que o PSQL, mas não foi o
suficiente nesse caso.

Grato pela ajuda,

Andrei

Em 02/06/06, Kléber Caneva<kdcc em terra.com.br> escreveu:
> Sugiro você quebrar essa SP em Outras Sub-SP...
>
> []´s
>
> Kléber Caneva
>
> ----- Original Message -----
> From: "Andrei Luís" <compuvale.software em gmail.com>
> To: "Firebase" <lista em firebase.com.br>
> Sent: Thursday, June 01, 2006 11:52 PM
> Subject: [firebase-br] Erro ao criar procedure: Too many Contexts
> ofRelation/Procedure/Views
>
>
> Boa noite,
>
> Estou alterando uma procedure já existente, e ao executar o comando
> Alter Procedure, apareceu a msg de erro abaixo:
>
> Invalid token.
> invalid request BLR at offset 33327.
> Too many Contexts of Relation/Procedure/Views. Maximum allowed is 127.
>
> Trata-se de uma SP bastante extensa, 1446 linhas, apenas com Selects,
> recuperando alguns valores e fazendo alguns cálculos simples, tem
> ainda muitos parâmetros de retorno, cerca de 150.
>
> O problema aconteceu quando eu inseri o seguinte select:
>
>         select Coalesce(sum(total_a_pagar), 0)/1000-(:emprestimo_ano
> + :retorno_calculado_ano + :tac_ano)
>             from propostas
>             where extract(year from data_aprovado) between :ano-10 and :ano
>             and filial_id=:wfilial_id
>             and status='A'
>             and tipo = 0
>             and (contrato_sufixo is null
>             or contrato_sufixo = '')
>             into :juros_geral;
>
> todas os parâmetros envolvidos, inclusive juros_geral estão declarados
> corretamente.
>
> A questão não é o select em si, pois utilizo select semelhante,
> jogando em outra variável, trocando apenas a linha where .... between
> :ano-10 and :ano para
> where ...  = :ano.
>
> Estou achando que tem algo a ver com limite de caracteres em uma SP.
>
> Já pesquisei no Google, no histórico da lista e de outras listas e só
> encontrei uma referência a fazer um backup e restore, que esse
> problema é devido a já ter feito N alterações na SP, porém já fiz isso
> e não resolveu. Estou pesquisando no livro Dominando o Firebird, by
> Helen Borrie, mas ainda não achei nada por ali também.
>
> Em último caso, vou dividir essa SP em duas, não vai me criar maiores
> problemas, porém gostaria de aprender o que exatamente está causando
> esse erro.
>
> Alguém poderia dar uma luz?
>
>
> []s
> Andrei
>
> Win XP Pro + D4 Pro / D2006 Pro + FB 1.5.2 + IBO 4.6B




Mais detalhes sobre a lista de discussão lista