[firebase-br] utilização de CASE dentro de uma procedure

Cassios cassio.hc em gmail.com
Qui Out 29 18:19:01 -03 2009


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
> 





Mais detalhes sobre a lista de discussão lista