none
Insert Oracle - Erro ao retornar ID inserido RRS feed

  • Pergunta

  • Prezados

    Nosso banco Oracle, possuí uma tabela que contem um campo Auto Numérico controlado por uma Sequence e uma Trigger.
    Ao fazer o insert nesta tabela, retorno o ID Inserido. Veja o código abaixo:

    using (ncOracleConnection) {

    //FAZ O INSERT NA TABELA QUE CONTÉM O CAMPO AUTONUMÉRICO _ncOracleConnection.Open(); _ncOracleCommand.CommandText = _ncQuery; _ncOracleCommand.Connection = _ncOracleConnection; _ncOracleCommand.ExecuteScalar();

    //SE HÁ O NOME DE UMA SEQUENCE NA PROPRIEDADE _ncOracleSequence, OBTEM O CURRVAL if (_ncOracleSequence != null) { _ncOracleCommand.CommandText = String.Format("SELECT {0}.CURRVAL FROM DUAL", _ncOracleSequence); var id = _ncOracleCommand.ExecuteScalar().ToString(); if (id != "") { IdInserido = Convert.ToUInt32(id); } } return IdInserido; } } catch (Exception ex) { throw new Exception(String.Format("ERROR: {0} ({1})", ex.Message, _ncOracleCommand.CommandText)); }

    Acontece que ao fazer o insert do primeiro registro, mesmo minha sequence estando zerada, ou seja, para inciar em 1, ele retorna o ID INSERIDO como 2... Daí para frente funciona normal... 3, 4, 5...

    Alguém tem alguma ideia do que pode estar acontecendo?

    Agradeço



    Eduardo Agostinho Analista Programador - C# Developer

    segunda-feira, 29 de junho de 2015 13:37