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

Cassios cassio.hc em gmail.com
Sex Out 30 09:27:20 -03 2009


Na verdade estou com dois problemas:

1 - não consigo compilar a procedure se usar um campo assim:	
	'R$' as campo
	somente se for assim: "R$"
porem se for com aspas, não roda a SP. dá este erro quando faço um 
select nela.:

	SQL Error:  Dynamic SQL Error SQL error code = -206 Column 	unknown RAS 
At line 3, column 63. Error Code: -206. Column does not belong to 
referenced table


2 - o outro problema é do case.. não compila também. acho que se 
resolver o 1 o primeiro se resolve.

vlw pelas dicas desde já.




Cassios escreveu:
> É 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
>>
> 
> 
> ______________________________________________
> 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