sql >> Databáze >  >> RDS >> Oracle

ORA-01008:nejsou vázány všechny proměnné. Jsou vázáni

Vím, že je to stará otázka, ale nebyla správně zodpovězena, takže na ni odpovídám pro ostatní, kteří se mohou s tímto problémem setkat.

Ve výchozím nastavení Oracle ODP.net váže proměnné podle pozice a zachází s každou pozicí jako s novou proměnnou.

Zacházet s každou kopií jako s jinou proměnnou a nastavit její hodnotu vícekrát je řešením a bolestí, jak zmínil furman87, a mohlo by vést k chybám, pokud se pokoušíte přepsat dotaz a přesunout věci.

Správným způsobem je nastavit vlastnost BindByName OracleCommand na true, jak je uvedeno níže:

var cmd = new OracleCommand(cmdtxt, conn);
cmd.BindByName = true;

Můžete také vytvořit novou třídu pro zapouzdření OracleCommand nastavením BindByName na true při vytváření instance, takže nemusíte nastavovat hodnotu pokaždé. Toto je diskutováno v tomto příspěvku



  1. Pochopení analýzy velkých dat

  2. Skrytá funkce:Přetahujte přístupové objekty mezi soubory

  3. Nepoužívejte sys.sql_dependencies v SQL Server (je zastaralý)

  4. Vložení SQLite