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 并增加它。
我收到一个 '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 并增加它。