Socorro!!!!
Tenho uma coluna que está como char, e preciso transformá-la para number, porém tenho caracteres nesse campo como faço para retirá-los.
Pois no meu select eu preciso comparar esse campo com o de outra tabela.
Dúvida função to_number
-
- Rank: Estagiário Pleno
- Mensagens: 4
- Registrado em: Qua, 30 Abr 2008 3:12 pm
- Localização: São Paulo
Mônica F.
Vou explicar melhor....
tenho que comparar o campo num_nf (number) de uma tabela com o campo num_doc_origem (char) de outra tabela. Porém, como a coluna num_doc_origem estava como char, ela aceitou a inserção de dados que não deveria, pois por incrível que parece teve um usuário que inseriu a informaçaõ E-MAIL em vez de colocar o número da nota. Por isso que não consigo transformar o campo em number.
Apresenta o erro: ORA-01722: invalid Number
Realmente estou precisando de ajuda!!!
Valeu!
Mônica F.
tenho que comparar o campo num_nf (number) de uma tabela com o campo num_doc_origem (char) de outra tabela. Porém, como a coluna num_doc_origem estava como char, ela aceitou a inserção de dados que não deveria, pois por incrível que parece teve um usuário que inseriu a informaçaõ E-MAIL em vez de colocar o número da nota. Por isso que não consigo transformar o campo em number.
Apresenta o erro: ORA-01722: invalid Number
Realmente estou precisando de ajuda!!!
Valeu!
Mônica F.
-
- Rank: DBA Pleno
- Mensagens: 241
- Registrado em: Ter, 09 Out 2007 11:15 am
- Localização: Batatais - SP
vixiiiii... acho q você vai ter q varrer qual a nota q esta cadastrada errada... arrumar ela primeiro pra depois fazer esta alteracao
caso não queira fazer isto para não dar erro na sua funcao você pode tmb ao invez de transformar o char para number transformar o number para char...
trim(campo_char) = trim(to_char(campo_number))
vê ai se te serve...
abrçs
caso não queira fazer isto para não dar erro na sua funcao você pode tmb ao invez de transformar o char para number transformar o number para char...
trim(campo_char) = trim(to_char(campo_number))
vê ai se te serve...
abrçs
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Mônica,
Uma dica para buscar essas notas na base, seria testar se ela é number e, caso não seja, jogar numa tabela de log ou, concatenar o erro.
Neste exemplo abaixo, vai cair no OTHERS, pois existe uma letra no campo.
qualquer coisa, manda ai.
Uma dica para buscar essas notas na base, seria testar se ela é number e, caso não seja, jogar numa tabela de log ou, concatenar o erro.
Neste exemplo abaixo, vai cair no OTHERS, pois existe uma letra no campo.
DECLARE
VNUMBER NUMBER;
BEGIN
SELECT TO_NUMBER(NRO_SEQ)
INTO VNUMBER
FROM TESTE
WHERE ID_PAC = 1
AND ID_CONS = 2;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line(' Não é Number.');
END;
- vetis
- Rank: Programador Pleno
- Mensagens: 36
- Registrado em: Sex, 25 Abr 2008 10:29 am
- Localização: cariacica - es
CREATE OR REPLACE FUNCTION Retorna_Numericos(v_string IN CHAR)
RETURN CHAR
IS
BEGIN
RETURN REPLACE(TRANSLATE(v_string,
TRANSLATE(v_string, '0123456789', ' ') ,
LPAD(' ', LENGTH(v_string), ' ')
), ' ', '');
END;
___________
Thiago Vetis
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Bing [Bot] e 17 visitantes