Oracle.ManagedDataAccess ORA-12899 - слишком большое значение для столбца

Я получаю "ORA-12899 - значение слишком большое для столбца (фактическое: 5, максимальное: 4)", которое я не могу отследить. Я делаю параметризованную вставку из учебника с использованием поставщика Oracle.ManagedDataAccess в C#. Кто-нибудь видел что-нибудь подобное?

То, что мы делаем, выглядит так:

var commandText = "insert into MyTable ([a ton of variables])   values(:A,:B,..........)";
using (OracleConnection connection = new OracleConnection(connectionString))
{
    connection.Open();
    using (OracleCommand command = new OracleCommand(commandText, connection))
    {
         for (the ton of variables there are to insert whose values are in a collection)
         command.Parameters.Add(theVariableName, theVariableValue);
    }
    command.ExecuteNonQuery();
}

Какие-нибудь мысли? Я проверил ряд других ответов, но безуспешно.

2 ответа

Решение

Попробуйте установить command.BindByName=true.

Возможно, проблема связана с порядком, в котором вы добавляете параметры в цикл for (тонны переменных...). В OracleCommand есть параметр "BindByName", который по умолчанию равен false, что означает, что он будет игнорировать имя вашей переменной в создаваемом вами параметре OracleParameter и просто полагаться на порядок, в котором вы их добавляете. Поэтому, если ваши переменные добавляются не по порядку, вам обязательно нужно установить command.BindByName=true.

Вернитесь к созданию вашей базы данных, где вы определили размер атрибута как 4. Измените таблицу и увеличьте ее.

Другие вопросы по тегам