在运行时,我得到“ ORA-01008 - 并非所有变量绑定”与在TOAD中运行良好且在TOAD(和I)中只找到一个参数的SQL语句。< / p>
如下所示,查询中只有一个参数。为什么Oracle会认为有多个参数/变量会引发异常?
我无法显示真正的sql,但这里有一个传真(列/表名更改):
SELECT DECODE(POSTWHEELTYPE,'0','NONE','D','NUMERIC','D','RESTRICTED NEEDLE','X','TRANSFER TO WINTER','A','ACCESS CODE') HALTYPE,
DECODE(VALIDATIONTYPE,'0','NONE','A','FOXPRO CODE','P','PERSONAL CODE','S','RESTRICTED') JBJTYPE,
LAZYNUMBER,
DISPLAYTEXT,
MINLENGTH || '-' || MAXLENGTH LENGTH,
NVL(INSTRUCTIONS, '<NONE>') INSTRUCTIONS
FROM
ABC.CODELAZYS
WHERE
BQSERVERABCID = :ABCID
AND VALIDATIONTYPE <> '0'
ORDER BY
LAZYNUMBER DESC
答案 0 :(得分:2)
如果Oracle返回此错误代码,我会打赌我的最后一美元中的变量没有受到限制。仅仅因为TOAD为变量提供了一个值并不意味着它已经绑定在其他客户端中。
你的100%肯定你的一个变量确实受到约束吗?你在哪里运行失败的查询?你能告诉我们它是怎么称呼的吗?
答案 1 :(得分:0)
问题是我对变量的约束太迟了;一旦我把它移到了对ExecuteReader()的调用之上,它就可以了。