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. Измените таблицу и увеличьте ее.