Oracle.ManagedDataAccess ORA-12899 - 列值太大

Oracle.ManagedDataAccess ORA-12899 - Value too large for column

我收到一个 'ORA-12899 - Value too large for column (actual: 5, maximum: 4)',但我无法找到。我正在使用 C# 中的 Oracle.ManagedDataAccess 提供程序进行教科书参数化插入。有人见过这样的东西吗?

我们正在做的看起来像:

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();
}

有什么想法吗?我检查了一些其他答案,但没有运气。

尝试设置 command.BindByName=true。

问题可能出在您在“(大量变量...)”循环中添加参数的顺序上。 OracleCommand "BindByName" 中有一个参数默认为 false,这意味着它将忽略您正在创建的 OracleParameter 中的变量名称,而只依赖于您添加它们的顺序。因此,如果您的变量被乱序添加,您肯定需要设置 command.BindByName=true。

回到创建数据库的过程中,您在其中将属性的大小定义为 4。更改 table 并增加它。