C'est la première fois que j'ai affaire à Oracle, et j'ai du mal à comprendre pourquoi je reçois cette erreur.
J'utilise ODT.NET d'Oracle en C# avec le code suivant dans la clause where d'une requête :
WHERE table.Variable1 = :VarA
AND (:VarB IS NULL OR table.Variable2 LIKE '%' || :VarB || '%')
AND (:VarC IS NULL OR table.Variable3 LIKE :VarC || '%')
et j'ajoute les valeurs des paramètres comme ceci :
cmd.Parameters.Add("VarA", "24");
cmd.Parameters.Add("VarB", "test");
cmd.Parameters.Add("VarC", "1234");
Quand je lance cette requête, le serveur renvoie :
ORA-01008: not all variables bound
Si je commente l'une ou l'autre des lignes 'AND (....'), la requête se termine avec succès.
Pourquoi la requête s'exécute-t-elle sans problème si je n'utilise que deux paramètres, mais pas trois ? L'erreur que je reçois n'a même pas de sens.