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

Eduardo Jedliczka edujed em gmail.com
Qui Jul 2 16:27:52 -03 2009


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.
> >>>>>
> >>>>>





Mais detalhes sobre a lista de discussão lista