[firebase-br] RES: RES: RES: ajuda com sintaxe em stored procedure

Cássio cassio.hc em gmail.com
Qui Jul 2 16:14:28 -03 2009


e acredito que o problema está ali no if e carregando a wWhere..
porque fiz sem isso, passando direto a que pega os grupos, sem 
concatenar colocando direto no where mesmo, e funcionou...

a concatenação deve estar errada em algum ponto.

vlw.

Cássio escreveu:
> SIM. estava faltando mesmo. porém o mesmo erro procede...
> 
> estou esquecendo de mais alguma coisa..
> 
> vlw.
> 
> Ivan Guimarães Meirelles escreveu:
>> Olá Cássio...
>>
>> Verifique se não é algum problema com o ALIAS q vc usou "L"
>> ' AND L.ID_GRUPO= ' || :GRUPO_ID || ' AND L.ID_GRUPO_SUB= '
>>
>> No que vc me passou está faltando L. para os campos ID_GRUPO e 
>> ID_GRUPO_SUB
>>
>> Pode ser isso... mas não tenho certeza... teste e me fala o q acontece...
>>
>> Um abraço.
>>
>> -----Mensagem original-----
>> De: lista-bounces em firebase.com.br 
>> [mailto:lista-bounces em firebase.com.br] Em
>> nome de Cássio
>> Enviada em: quinta-feira, 2 de julho de 2009 14:03
>> Para: lista em firebase.com.br
>> Assunto: Re: [firebase-br] RES: RES: ajuda com sintaxe em stored 
>> procedure
>>
>> TO FAZENDO ASSIM OH..
>>
>>
>> DECLARE VARIABLE wWhere VARCHAR(200);
>> BEGIN
>>
>>   if (:tipo_Rel = 'L') then --Aqui é uma das entradas...
>>      wWHERE = '(L.DATA_LANCAMENTO BETWEEN ' || :INICIO || ' AND ' || 
>> :FIM || ')';
>>   else
>>      wWHERE = '(L.DATA_LANCAMENTO BETWEEN ' || :INICIO || ' AND ' || 
>> :FIM || ' AND ID_GRUPO= ' || :GRUPO_ID || ' AND ID_GRUPO_SUB= ' || 
>> :GRUPO_SUB_ID || ')';
>>
>>        /*Seleciona os registros dentro do periodo informado
>>        buscando na tabela lançamentos*/
>>       For execute statement 'SELECT
>>             ID_LANCAMENTO,
>>             ID_SEQUENCIAL,
>>             DATA_COMPETENCIA
>>        FROM
>>                  LANCAMENTOS L
>>        WHERE    ' || wWhere || '
>>        ORDER BY L.NOME_PROPRIET, L.ID_SEQUENCIAL '
>>             INTO :ID_LANCAMENTO,:ID_SEQUENCIAL,:DATA_COMPETENCIA
>>        DO
>>        BEGIN
>>             SUSPEND;
>>        END
>> end
>>
>>
>> teoricamente está tudo certo.. ela cria.. mas dá o erro que já 
>> coloquei anteriormente>
>>  > SQL Error:  Dynamic SQL Error SQL error code = -104 Token unknown - 
>> line
>>  > 39, column 44 0. Error Code: -104. Invalid token
>>
>> Cássio escreveu:
>>> cERTO. Consegui fazer ajusta e executou belza..
>>>
>>> mas agora me retorna o seguinte erro:
>>> SQL Error:  Dynamic SQL Error SQL error code = -104 Token unknown - 
>>> line 39, column 44 0. Error Code: -104. Invalid token
>>> que não ajuda muito né.. porque na linha 39 é um campo do meu select 
>>> que não tem nenhuma ligação com as alterações que fiz. tem alguma dica?
>>>
>>> vlw.
>>>
>>>
>>> Ivan Guimarães Meirelles escreveu:
>>>> Segue a sintaxe normal dor FOR com INTO veja:
>>>>
>>>> For execute statemente 'select campos from tabela where ' || :wWhere 
>>>> || '
>>>> order by campos '
>>>> Into :variaveis do
>>>> Begin
>>>>     Suspend;
>>>> End
>>>>
>>>> É por ai... espero ter ajudado...
>>>> Um abraço.
>>>>
>>>> -----Mensagem original-----
>>>> De: lista-bounces em firebase.com.br 
>>>> [mailto:lista-bounces em firebase.com.br] Em
>>>> nome de Cássio
>>>> Enviada em: quinta-feira, 2 de julho de 2009 12:34
>>>> Para: lista em firebase.com.br
>>>> Assunto: Re: [firebase-br] RES: ajuda com sintaxe em stored procedure
>>>>
>>>> depois do order by campos eu faço assim:
>>>>
>>>> order by campos
>>>> into :saida1, :saida2
>>>>
>>>> como ficaria essa concatenação?
>>>>
>>>> vlw.
>>>>
>>>>
>>>> Ivan Guimarães Meirelles escreveu:
>>>>> Olá Cássio...
>>>>>
>>>>> Nesse caso vc terá que usar EXECUTE STATEMENT
>>>>> Seguindo o seu código ficaria assim:
>>>>>
>>>>> For execute statemente 'select campos from tabela where ' || 
>>>>> :wWhere || '
>>>>> order by campos'
>>>>>
>>>>> Espero ter ajudado
>>>>> Um abraço...
>>>>>
>>>>> -----Mensagem original-----
>>>>> De: lista-bounces em firebase.com.br 
>>>>> [mailto:lista-bounces em firebase.com.br]
>>>> Em
>>>>> nome de Cássio
>>>>> Enviada em: quinta-feira, 2 de julho de 2009 11:00
>>>>> Para: lista em firebase.com.br
>>>>> Assunto: [firebase-br] ajuda com sintaxe em stored procedure
>>>>>
>>>>> Opa.
>>>>> Estou tentando atribuir um 'where id=:campoEntrada' para uma 
>>>>> variable que declarei dentro da minha SP e a chamei de wWhere. 
>>>>> Preciso fazer assim pois em algum momento o where pode mudar.
>>>>>
>>>>> só que não estou conseguindo fazer
>>>>>
>>>>> no meu for Select fiz assim:       for select campos
>>>>>         from tabela
>>>>>         where  :wWhere 'o erro ta dando aqui...
>>>>>         order by campos
>>>>>
>>>>>
>>>>> como faço neste caso..
>>>>>
>>>>>
>>>>> vlw.
>>>>>
>>>>>
>>>>> ______________________________________________
>>>>> 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
>>>>>
>>>>>
>>>>> ______________________________________________
>>>>> 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
>>>>>
>>>>
>>>> ______________________________________________
>>>> 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
>>>>
>>>>
>>>> ______________________________________________
>>>> 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
>>>>
>>>
>>> ______________________________________________
>>> 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
>>>
>>
>>
>> ______________________________________________
>> 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
>>
>>
>> ______________________________________________
>> 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
>>
> 
> 
> ______________________________________________
> 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