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

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


GRUPO_ID e GRUPO_SUB são bigint
as datas estão ok, pois sem eu usar a variável wWhere funciona.
A wWhere é um varchar(200)

flw...

Eduardo Jedliczka escreveu:
> como está o valor das variáveis GRUPO_ID e GRUPO_SUB... elas são
> numéricas ou são Char ?
> 
> e a data... qual é o formato delas ? será que não faltou colocar abre e
> fecha aspas (simples) na data ?
> 
> Abraço
> 
> Eduardo
> 
> Em Qui, 2009-07-02 às 16:14 -0300, Cássio escreveu: 
>> 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
> 





Mais detalhes sobre a lista de discussão lista