【发布时间】:2010-11-28 03:59:31
【问题描述】:
这是我第一次与 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 (....' 行,则查询成功完成。
如果我只使用两个参数而不是三个参数进行查询,为什么查询会正常运行?我收到的错误甚至没有意义
【问题讨论】:
-
能否在SQL语句执行前使用DBMS_OUTPUT打印出来?
标签: sql oracle plsql oracle10g