- Este tópico contém 21 respostas, 6 vozes e foi atualizado pela última vez 16 anos, 5 meses atrás por
rtsilva.
- Você deve fazer login para responder a este tópico.
Ok vc tem razão, não existe o to_number para valores numéricos.
Por favor, algúem sabe como faço então para colocar a seguinte condição:
Isso está me retornando um, erro ora: 01438, valor maior que a precisão especificada usada para esta coluna. Na tabela criada ela é nunber(2) not null.
Desde já agradeço,
[quote=”rtsilva”:wedjgygq]* CODV0987 */ TO_NUMBER(DECODE(V0987, ‘ ‘, 3, V0987)),[/quote]
Bom…
Você está tentando novamente colocar TO_NUMBER para um valor numérico.
Se você colocar o NVL (v0987, 3) se o valor de v0987 for nulo, vai valer 3, caso contrário é o próprio valor.
bem.. que pelo sei..
Além dele ta convertendo tipo number para number..
Ele ta comparando numérico com char.
O que realmente sai um pouco da finalidade que ele deseja obter..
( Pelo que eu entendi no decorrer das respostas ae )
Num sei, mas acho que a expressão abaixo é valida se vc quiser se o valor é nulo ou não.
select DECODE(null,null,1,1234) from dual ;
[quote=”lipcurl”:1zzvqwcm]
(…)
Num sei, mas acho que a expressão abaixo é valida se vc quiser saber se o valor é nulo ou não.
select DECODE(null,null,1,1234) from dual ;
(…)
[/quote]
MELHORANDO A PERGUNTA,
PARA INSERIR EM UMA VARIAVEL VALORES DE OUTRA TABELA MAS QUE POSSUEM VALOR EM BRANCO COMO QUE TRATO-AS NO SELECT PÓS INSERT?
EX.: INSERT INTO NOME DA TABELA
(
CODV0808
CODV0809
)
SELECT
CODV0808 CASE WHEN (V0808)=’ ‘ THEN 3
ELSE TO_NUMBER(B0808)
END
CODV0809 CASE WHEN (TO_NUMBER(V0808)=2) THEN 3
ELSE TO_NUMBER V0809
END
FROM NOME TABELA DA TABELA 1;
SENDO QUE NA TABELA 1:CODV0808 POSSUI VALORES 1. 2, NULL, ‘ ‘(BRANCO)
CODV0809 POSSUI 1, 0, 2, 3
OBS.: NA TABELA CRIADA ELAS RECEBERA NOT NULL
DESDE JÁ AGRADEÇO A ATENÇÃO DE TODOS
Resposta para quem tinha dúvidas como a minha.
Para inserir na variável um valor em branco:
B0405 case when B0405=’ ‘ then 1
else(decode(B0405, ‘ ‘, 0))
end,
abraços