OCI-22053: erro de overflow

Forum destinado a Linguagem JAVA! Classes, orientação a objeto, conexão com banco, chamada de procedures, etc
Responder
joaoluizbt
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 37
Registrado em: Qui, 05 Mai 2011 3:53 pm
Localização: Rio de Janeiro

Boa tarde,

eu tenho uma classe que busca as informações de uma tabela, mas quando esta busca é feita, dá erro de stack overflow... mas a tabela só tem uma linha, não deveria dar este erro, certo?

segue o codigo:

código da classe:

Selecionar tudo

public DataSet RetornaDataSet(string strQuery)
            {
            OracleConnection cn = new OracleConnection();
            try 
            	{	    
                cn = Abriconexao();
                OracleCommand cmd = new OracleCommand();
                cmd.CommandText = strQuery.ToString();
                cmd.CommandType = CommandType.Text;
		        cmd.Connection = cn;
                cmd.ExecuteNonQuery();
                /*  Declarado um dataadapter e um dataset
                    passar o comando para o da (SqlDataAdapter) e 
                    carregar o dataset com resultado da busca */
                OracleDataAdapter da = new OracleDataAdapter();
                DataSet ds = new DataSet();
                da.SelectCommand =  cmd;

                da.Fill(ds); // O ERRO DÁ AQUI, NO PREENCHIMENTO.

                return ds;
            	}
           
            finally
            {
                FecharConexao(cn);
            }

            }
obrigado.
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Joao,

Não sei se este forum seria o mais adequado para sua pergunta.
Mas se pesquisar no google por OCI-22053, você vai encontrar vários relatos com este tipo de problema, envolvendo o banco de dados oracle.
Pelo que pude entender destes artigos, pode ser que esteja ocorrendo algum problema na conversão de campos numéricos com casas decimais (ex: NUMBER(15,4)), que estaria gerando este erro de overflow.
Sua tabela de uma linha aprensenta campos do tipo NUMBER(N,D)?
Neste caso, o que a maioria dos artigos recomendou foi arrendondar estes campos na execução do comando SELECT.

Espeficamente foi recomendado que se usasse

Selecionar tudo

TRUNC([nome_do_campo],2)
no SELECT para "arredondar" estes campos com muitas casas decimais.

Ex:

Selecionar tudo

TABELA_A (VALOR NUMBER(14,5))
SELECT TRUNC(VALOR,2) FROM TABELA_A;
Espero que esta informação te ajude na solução do problema.

Abraços,

Sergio
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5023
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Tópico movido para JAVA...
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

possivelmente o erro não da nessa linha.. entendo que a sua IDE esteja apontando para ela porem stackoverflow é um erro mascarado.. o seu real erro muito provavelmente não é esse

o que essa linha faz?

Selecionar tudo

da.SelectCommand =  cmd; 

acho que você está misturando algumas coisas ai.. esta realmente usando java?
joaoluizbt
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 37
Registrado em: Qui, 05 Mai 2011 3:53 pm
Localização: Rio de Janeiro

ola,

o problema eram as casas depois da virgula.
depois que eu dei um trunc funcionou..

muito obrigado.
Renato Menezes Viana
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 128
Registrado em: Sáb, 18 Nov 2006 11:51 am
Localização: Rio de Janeiro - RJ

Pessoal, me metendo no assunto, o link abaixo demonstra como pegar a descrição de erro (SQLERRM) no JAVA.

http://docstore.mik.ua/orelly/oracle/gu ... h09_08.htm

Parece que existindo no código JAVA a linha abaixo, sempre uma mensagem bem esclarecedora do erro vai aparecer.

Selecionar tudo

} catch (SQLException e) {System.err.println(e.getMessage());}
Chutei ou acertei?
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes