【发布时间】:2012-09-07 19:55:03
【问题描述】:
在运行时,我得到“ORA-01008 - 并非所有变量都绑定”,其中一条 SQL 语句在 TOAD 中运行良好,并且 TOAD(和我)只找到一个参数。
如下所示,查询中只有一个参数。为什么 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
【问题讨论】:
-
:ABCID是否有可能因为某种原因没有被绑定?你能发布周围的(非SQL)代码吗? -
没关系 - 问题在于我绑定变量的位置(为时已晚);一旦我将它移到对 ExecuteReader() 的调用之上,它就起作用了。
标签: oracle variables parameters toad