作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个查询,但似乎无法超越 Oracle 中的 Not all Variablesbound
错误
据我所知,一切看起来都是正确的。我错过了什么?
为了保护无辜者,代码进行了一些混淆......
OracleCommand execCmd = new OracleCommand();
OracleParameter outParam =
new OracleParameter("ID", OracleType.Int32);
outParam.Value = DBNull.Value;
outParam.Direction = System.Data.ParameterDirection.Output;
execCmd.CommandText = "insert into o " +
"(A, B, " +
"C, D, E, " +
"F, G, H, I, " +
"J, K) " +
"VALUES (:A, :B, :C, :D, :E, " +
":F, :G, :H, :I, :J, :K) " +
"RETURNING O_ID INTO :ID";
execCmd.Parameters.AddWithValue("A", og.N);
execCmd.Parameters.AddWithValue("B", DBNull.Value);
execCmd.Parameters.AddWithValue("C", DBNull.Value);
execCmd.Parameters.AddWithValue("D", og.A);
execCmd.Parameters.AddWithValue("E",
og.A1 + " " + og.A2 + " " + og.A3 +
" " + og.C);
execCmd.Parameters.AddWithValue("F", DBNull.Value);
execCmd.Parameters.AddWithValue("G", DBNull.Value);
execCmd.Parameters.AddWithValue("H", og.Cs);
execCmd.Parameters.AddWithValue("I", ss);
execCmd.Parameters.AddWithValue("J", DBNull.Value);
execCmd.Parameters.AddWithValue("K", "N");
execCmd.Parameters.Add(outParam);
conn.executeCommand(execCmd, trx);
最佳答案
我最终能够解决这个问题。事实证明,我的一个字符串实际上为 null,并且此版本的 OracleCommand(已标记为已弃用)中存在一个错误,导致它删除 null 参数。对我来说,解决方案是在执行之前运行修复函数。
此外,正如其他人所说,顺序确实很重要。因此,这也必须是正确的。
这对我有用,在执行之前调用它:
private void PopulateNullParameters(OracleCommand cmd)
{
foreach (OracleParameter p in cmd.Parameters)
{
if (p.Value == null)
{
p.Value = DBNull.Value;
}
}
}
关于c# - ORA-01008 : Not all variables bound with nulls,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13166035/
我是一名优秀的程序员,十分优秀!