quinta-feira, 22 de maio de 2014

Oracle - Converter para inteiro resultado de uma estrutura CASE para utilização no c#

Oracle - Converter para inteiro resultado de uma estrutura CASE para utilização no c#

                A seguir demonstrarei como converter uma string para inteiro (Int32 – c#) utilizando o case dentro de um select.

--Correta (Neste caso, o valor que retornar no case, será convertido para Number(5), ou seja Int32 em c#)
SELECT CAST(CASE WHEN 'campo_tabela' = 'campo_tabela' THEN '1' ELSE '2' END AS NUMBER(5)) AS ORIGEM
FROM dual;

A seguir demonstrarei o problema que estava tendo ocorrendo na conversão utilizando o case.

--Incorreta (Neste caso, o cast estava sendo feito nos valores dentro do case (1 e 2), e de forma implícita o case converte para decimal).
SELECT  CASE WHEN 'campo_tabela' = 'campo_tabela' THEN CAST('1' AS NUMBER(5)) ELSE CAST('2' AS NUMBER(5)) END AS ORIGEM

FROM  dual;


Nenhum comentário:

Postar um comentário