[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