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