Ir para conteúdo
EREGON

Erro Conversão VARCHAR2 to NUMBER

Recommended Posts

Bom dia,

 

tenho uma tabela cuja estrutura está toda em VARCHAR. Essa tabela contem algumas colunas com valores decimais, e quero executar algumas queries para fazer algumas operações aritméticas, como:

 

-Devolver valores maiores que xx.xx, etc.

 

Mas estou a ter erros, como:

 

ORA-12801: erro assinalado no servidor de consulta paralela P009, instance ptlhb100.pt.sedc.internal.vodafone.com:CSTMRDM2 (2)
ORA-01722: número inválido
12801. 00000 -  "error signaled in parallel query server %s"
*Cause:    A parallel query server reached an exception condition.
*Action:   Check the following error message for the cause, and consult
           your error manual for the appropriate action.
*Comment:  This error can be turned off with event 10397, in which
           case the server's actual error is signaled instead.

 

Estou a executar a querie:

 

SELECT TBL_NUMBER
FROM MOBILE_UPSELL tl
WHERE TO_NUMBER(tl.ARPU_MIB) < 8.01

 

Já tentei TO_BINARY_NUMBER e dá o mesmo erro.

 

O que está mal aqui?

 

Obrigado

 

Paulo

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

já tentei NUMBER COM FORMAT e dá:

 

ORA-01722: número inválido
01722. 00000 -  "invalid number"
*Cause:    The specified number was invalid.
*Action:   Specify a valid number.

 

Os valores que tenho nessa coluna estão com "Ponto", ex:

 

8.1112222245858

0

1.233332225566

 

etc.

 

SELECT TO_NUMBER(TBL_NUMBER, '9999.99')
FROM MOBILE_UPSELL

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um TRIM as vezes resolve

 

TO_NUMBER(TRIM(TBL_NUMBER), '9999.99')

 

Mas veja como os valores estão gravados se estiver usando vírgula , orecisará de outro tratanento , REPLACE etc.

Compartilhar este post


Link para o post
Compartilhar em outros sites
51 minutos atrás, Motta disse:

TO_NUMBER(TRIM(TBL_NUMBER), '9999.99')

 

Nada,

 

ORA-01722: número inválido
01722. 00000 -  "invalid number"
*Cause:    The specified number was invalid.
*Action:   Specify a valid number.

 

51 minutos atrás, Motta disse:

Mas veja como os valores estão gravados se estiver usando vírgula , orecisará de outro tratanento , REPLACE etc.

 

não tenho virgulas nessa coluna :sweat:

 

Será pela quantidade de casas decimais?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Descobri que existem valores nessa coluna que estão, neste formato:

 

1.01251454874587e-06

 

Será isto que estará a causar problemas?

 

Além de existirem valores negativos:

 

-0.121547874

Compartilhar este post


Link para o post
Compartilhar em outros sites

É a notação cientifica deve ter um formato para isto , tente com case ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por douglas.ribeiro.id
      Bom dia a todos
       
      a varios anos que nao tenho que criar um script no oracle nao consigo lembrar ne como começar e tambem estou sem o oracle instalado na maquina
      alguem poderia me ajudar? o problema e este: 
      Crie um segundo script (SCRIPT2.SQL) que possua um bloco de código para que gere registros fictícios para as tabelas criadas. Gere 1000 registros para a tabela EXAME_NF. Para cada EXAME_NF gere 3 registros. Faça com que a DATACADASTRO do EXAME_NF comece em 10 dias atrás, fazendo com que a cada 100 registros a data seja aumentada em 1 dia, distribuindo assim os 1000 registros em 10 dias diferentes de cadastro.
    • Por Jonatas Provido
      Pessoal veja se consegue me ajudar 
      Hoje tenho uma  TABELA1 e TABELA2
      Tabela =  TABELA1
      Colunas = NCM
                         IPOS_FEDER
                         IPOS_MUNIC
                         IPOS_GLOBAL
                         IPOS_ESTAD
      A Tabela2 onde esta com as informações novas que precisa ser atualizado a Tabela1
      TABELA = TABELA2
      COLUNAS = NCM
                            FEDERAL
                            MUNICIP
                            GLOBAL
                            ESTADU
                       
      Preciso que compare o coluna NCM as demais coluna se diferente valor tabela 2 atualiza a tabela1 
       
      já li vários post porem acho que a forma que estou pesquisando não seja coerente. 
      Obrigado! pela atenção

       
    • Por luizfabianochaves
      Boa tarde..
      Estou com um problema aqui, preciso fazer um calculo mas não tenho ideia de como fazer... vou ver se consigo explicar..
      na empresa temos 60 representantes cada um tem uma meta de vendas diferente a ser cumprida mensalmente, quando ele não bate a meta, o saldo tem que ser diluíido nos meses seguintes..
       
      exemplo: representante 01 teria que vender 1.000 em janeiro. vendeu 900 esses 100 reais que faltaram, teriam que ir pra os outros meses.. 100/11=9,09 então a meta dos outros meses seria de 1009,90.. conseguiram entender?
    • Por pamf
      Prezados, boa noite!
       
      Me deparei com um problema aqui que acredito que seja bem simples para voces. Estou aqui precisando agrupar dados com a maior data de vendas para um cliente Numa coluna para todas as linhas do cliente (registro a registro das notas). Tambem preciso fazer algumas operacoes de total para disponibilizar um SCRIPT SQL sql para ser consumido por uma ferramenta analitica de BI e foi especificado exatamente como esta na planilha. Para facilitar criei os cenários. Tem os scripts de criacao da tabela e de insert e os resultados esperados nas colunas calculadas pelo sql. Espero que a documentação esteja boa para o caso de uso e que voces possam me ajudar. POde ser didatico para quem da aulas de PL SQL.
       
      Grato
       
      Att
      Paulo
       
      PS: como nao aceitou a planilha, escrevo abaixo:
       
      --SCRIPT DE CRIACAO TABELA ORACLE CREATE TABLE T_VENDAS (DATA_VENDA DATE, COD_CLI NUMBER (10), CLIENTE VARCHAR2(10), NUM_NF VARCHAR(10), ITEM VARCHAR2(20), QTDE NUMBER (10,2), VL_TOT_ITEM NUMBER (10,2), VL_UNIT NUMBER (10,2)); --INSERTS INSERT INTO T_VENDAS VALUES('05-Jan-2019',15,'JOAO','20','MESA',1,200,200); INSERT INTO T_VENDAS VALUES('05-Jan-2019',15,'JOAO','20','CADEIRA',4,240,60); INSERT INTO T_VENDAS VALUES('21-Jan-2019',15,'JOAO','66','BANCO',2,240,120); INSERT INTO T_VENDAS VALUES('08-Feb-2019',15,'JOAO','102','GELADEIRA',1,600,600); INSERT INTO T_VENDAS VALUES('07-Mar-2019',15,'JOAO','145','ARMARIO',1,450,450); INSERT INTO T_VENDAS VALUES('05-Jan-2019',20,'MARIA','28','SOFA',1,750,750); INSERT INTO T_VENDAS VALUES('05-Jan-2019',20,'MARIA','28','TAPETE',2,280,140); INSERT INTO T_VENDAS VALUES('21-Jan-2019',20,'MARIA','72','CORTINA',2,160,80); INSERT INTO T_VENDAS VALUES('08-Feb-2019',20,'MARIA','120','CAMA',1,400,400); INSERT INTO T_VENDAS VALUES('17-Feb-2019',20,'MARIA','151','COLCHAO',1,500,500);  
       
      CENARIOS (DADOS INSERIDOS NA TABELA T_VENDAS - COLUNAS DO EXCEL ABAIXO: B, C, D, E, F, G, H, I)
       

       
      COLUNAS CALCULADAS ESPERADAS NO SCRIPT SQL ALEM DAS COLUNAS JA EXISTENTES NA TABELA
       

       
      RESULTADO ESPERADO DO SCRIPT SQL
       

       
       
       
         
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.