0

在运行时,我得到“ ORA-01008 - not all variables bound ” 的 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
4

2 回答 2

2

如果甲骨文返回此错误代码,我敢打赌我最后一美元的更好部分是该变量未绑定。仅仅因为 TOAD 为变量提供了一个值并不意味着它绑定在其他客户端中。

你是 100% 肯定你的一个变量确实是绑定的吗?您在哪里运行失败的查询?你能告诉我们它是怎么称呼的吗?

于 2012-09-07T20:10:56.213 回答
0

问题是我绑定变量太晚了;一旦我将它移到对 ExecuteReader() 的调用之上,它就起作用了。

于 2012-09-14T14:50:34.563 回答