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

Ivan Guimarães Meirelles igmeirelles em gmail.com
Qui Jul 2 16:41:45 -03 2009


Olá Cássio

Se :INICIO e :FIM forem do tipo date então faça assim:

   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 || ')';

Dessa forma estou acrescentando aspas simples entre as datas...

Espero q ajude...
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 15:11
Para: lista em firebase.com.br
Assunto: Re: [firebase-br] RES: RES: RES: ajuda com sintaxe em stored
procedure

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