[firebase-br] RES: utilização de CASE dentro de uma procedure
Cassios
cassio.hc em gmail.com
Sex Out 30 09:12:05 -03 2009
É que o campo moeda é um integer da tabela...
continua sem funcionar... :S
agradeço as dicas. vlw
Jose Aparecido da Silva escreveu:
> Posso estar escrevendo besteira, me desculpem e ignorem:
>
> Mas a sintaxe não é:
>
> For select ID, case Moeda when 0 then 'R$' else 'US$' end from minha_tabela
> into :id, :moeda do suspend;
>
> Não é necessário usar o cast. É só definir a variável moeda como varchar(3);
>
> [ ]'s
> Jose Aparecido da Silva
>
> -----Mensagem original-----
> De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
> nome de Cassios
> Enviada em: quinta-feira, 29 de outubro de 2009 18:19
> Para: lista em firebase.com.br
> Assunto: Re: [firebase-br] utilização de CASE dentro de uma procedure
>
> opa.
> ACHEI que tivesse resolvido. mas NÃO.
>
> não sei porque mas o firebird não deixa eu criar a procedure se a moeda
> estiver com (') apóstrofe. só com ("") aspas. Só que com aspas a SP
> retorna erro.
>
> alguem pode me dar uma dica?
>
>
> For select case
> when Moeda = 0 then
> Cast('R$' as varchar(3)) --assim não rola tenho que colocar
> apas aqui
> else
> Cast('US$' as varchar(3))
> end
> From minha_tabela
> INTO :ID, :MOEDA
> DO
> BEGIN
> SUSPEND;
> END
>
>
> vlw.
>
> Cassios escreveu:
>> Resolvi vlw.
>> o campo moeda é do tipo integer.. então na proceduro converti ele para
>> varchar e funcionou.
>>
>>
>> vlw!!!
>>
>>
>> Cassios escreveu:
>>> opa.
>>> tentei mas retorna o mesmo erro.
>>>
>>> SQL Error: Dynamic SQL Error SQL error code = -104 Token unknown -
>>> line 37, column 24 R$. Error Code: -104. Invalid token The SQL: ALTER
>>> PROCEDURE PR_minha
>>>
>>> não to entendo porque deveria funcionar... putz sei que é um detalhe..
>>>
>>> vlw.
>>>
>>>
>>> Moacir - GMail escreveu:
>>>> Ops,
>>>>
>>>> Não vi que retornava tb o ID.
>>>>
>>>> Mas o cast deve resolver.
>>>>
>>>> Moacir
>>>>
>>>>
>>>> Moacir - GMail escreveu:
>>>>> Cassios,
>>>>>
>>>>> Tire o campo id e faça um cast que deverá resolver teu problema:
>>>>>
>>>>> For select case
>>>>> when Moeda = 0 then
>>>>> Cast('R$' as varchar(3))
>>>>> else
>>>>> Cast('US$' as varchar(3))
>>>>> end
>>>>> From minha_tabela
>>>>>
>>>>> INTO :ID, :MOEDA
>>>>> DO
>>>>> BEGIN
>>>>> SUSPEND;
>>>>> END
>>>>>
>>>>>
>>>>> Não esqueça que este cast deve coincidir com o tipo do parametro de
>>>>> retorno MOEDA.
>>>>>
>>>>> Sucesso !!
>>>>>
>>>>> Moacir
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Cassios escreveu:
>>>>>> Opa.
>>>>>> To tentando fazer um case dentro de um For execute statement
>>>>>>
>>>>>> faço assim:
>>>>>>
>>>>>> For execute statement '
>>>>>> select id,
>>>>>> case
>>>>>> when Moeda = 0 then
>>>>>> 'R$'
>>>>>> else
>>>>>> 'US$' end as Moeda2
>>>>>> From minha_tabela
>>>>>>
>>>>>> INTO :ID, :MOEDA
>>>>>>
>>>>>> DO
>>>>>> BEGIN
>>>>>> SUSPEND;
>>>>>> END
>>>>>>
>>>>>>
>>>>>> se faço isso numa query normal, funciona, dentro do escopo da
>>>>>> procedure não. Alguma dica?
>>>>>>
>>>>>> 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
>
Mais detalhes sobre a lista de discussão lista