none
Erro ao acessar Oracle ODBC 11.2 - "COLUNA1" NUMBER(16,4) RRS feed

  • Pergunta

  • Quando uma query é realizada e retorna um valor numérico decimal de uma coluna com um tamanho e precisão grandes, ocorre o erro "Input String was not in a correct format".

    O ASP.Net não consegue lidar com o número vindo de uma coluna como a seguinte: NUMBER(16,4).

    Os dados técnicos para a reprodução do erro são:

    Sistema ASP.Net 4.0 usando driver ODBC Oracle 11.2

    Coluna Oracle que causa o erro: "COL1" NUMBER(16,4)

    Valores testados:

    0.65 (causa erro)

    40 (não causa erro)

    Null (não causa erro)

    0 (não causa erro)

    3000 (não causa erro)

    Linhas de código executadas:

    reader.Read();

    reader = command.ExecuteReader(CommandBehavior.CloseConnection);

    string valor = reader[i].ToString();//erro ocorre aqui

    terça-feira, 3 de junho de 2014 12:09

Respostas

  • Amigo, boa tarde.

    Estou tentando ler seu código e me parece que ele está incompleto ou fora de ordem.

    Por favor, teria como você postar o código completo para que possamos analisar de uma melhor forma ?

    Abraços !


    Diego Murakami View Diego Murakami's LinkedIn profile - MCP, MS, MCSD
    * Por favor "Marcar como Resposta" caso esta for útil para sua dúvida.

    • Marcado como Resposta BXBsoft sexta-feira, 6 de junho de 2014 14:40
    quinta-feira, 5 de junho de 2014 19:42

Todas as Respostas

  • Amigo, boa tarde.

    Estou tentando ler seu código e me parece que ele está incompleto ou fora de ordem.

    Por favor, teria como você postar o código completo para que possamos analisar de uma melhor forma ?

    Abraços !


    Diego Murakami View Diego Murakami's LinkedIn profile - MCP, MS, MCSD
    * Por favor "Marcar como Resposta" caso esta for útil para sua dúvida.

    • Marcado como Resposta BXBsoft sexta-feira, 6 de junho de 2014 14:40
    quinta-feira, 5 de junho de 2014 19:42
  • Segue um exemplo onde ocorre o erro: 

               try {

                    OdbcConnection connection = new dbcConnection("DSN=oraclexe;UID=system;PWD=123;");

                    connection.Open();

                    OdbcCommand command = connection.CreateCommand();

                    command.CommandTimeout = 14400;

                    command.CommandText = "select COLUNA1 from table1";

                    OdbcDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);

                    string valor = reader[0].ToString(); //  <--- ERRO AQUI

                    connection.Close();

                } catch (Exception ex) {

                    MessageBox.Show(ex.Message);

                }

    sexta-feira, 6 de junho de 2014 19:01
  • Amigo, bom dia.

    Coloque então um breakpoint na linha onde ocorre o erro e verifique o valor de reader[0].

    Esse objeto está inválido no retorno e você terá que fazer uma conversão para string de outra forma.

    Utilize esse link como referência para conversões de valores em string.

    Convert.ToString Method

    Teste e poste seus resultados.

    Abraços !



    Diego Murakami View Diego Murakami's LinkedIn profile - MCP, MS, MCSD
    * Por favor "Marcar como Resposta" caso esta for útil para sua dúvida.

    segunda-feira, 9 de junho de 2014 12:56