0

実行時に、「ORA-01008 - すべての変数がバインドされているわけではありません」というメッセージが表示され、TOADで正常に実行され、TOAD(および私)が1つのパラメーターしか見つからないSQLステートメントが表示されます。

以下に示すように、クエリには IS パラメータが 1 つしかありません。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

If Oracle is returning this error code, I would bet the better part of my last dollar that the variable was not bound. Just because TOAD has provided a value for the variable does not mean that it's bound in other clients.

Are you 100% positive your one variable is indeed bound? Where are you running the query that fails? Can you show us how it's called?

于 2012-09-07T20:10:56.213 に答える
0

問題は、変数のバインドが遅すぎることでした。ExecuteReader()の呼び出しの上に移動すると、機能しました。

于 2012-09-14T14:50:34.563 に答える