gpt4 book ai didi

sql - Oracle "ORA-01008: not all variables bound"错误带参数

转载 作者:行者123 更新时间:2023-12-03 09:01:37 26 4
gpt4 key购买 nike

这是我第一次与 Oracle 打交道,我很难理解为什么会收到此错误。

我在查询的 where 子句中使用带有 C# 的 Oracle ODT.NET 和以下代码:

WHERE table.Variable1 = :VarA
AND (:VarB IS NULL OR table.Variable2 LIKE '%' || :VarB || '%')
AND (:VarC IS NULL OR table.Variable3 LIKE :VarC || '%')

我正在添加参数值,如下所示:
cmd.Parameters.Add("VarA", "24");
cmd.Parameters.Add("VarB", "test");
cmd.Parameters.Add("VarC", "1234");

当我运行这个查询时,服务器返回:
ORA-01008: not all variables bound 

如果我注释掉任一'AND (....' 行,则查询成功完成。

如果我只使用两个参数而不是三个参数进行查询,为什么查询会正常运行?我收到的错误甚至没有意义

最佳答案

oracle 的 ODP.Net 提供程序默认使用按位置绑定(bind)。将行为更改为按名称绑定(bind)。设置属性BindByName为真。比你可以忽略参数的双重定义。

using(OracleCommand cmd = con.CreateCommand()) {
...
cmd.BindByName = true;
...
}

关于sql - Oracle "ORA-01008: not all variables bound"错误带参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1422032/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com