Oracle
 sql >> база данни >  >> RDS >> Oracle

ORA-01008:не всички променливи са обвързани. Те са обвързани

Знам, че това е стар въпрос, но не е адресиран правилно, така че отговарям на него за други, които може да се сблъскат с този проблем.

По подразбиране ODP.net на Oracle свързва променливи по позиция и третира всяка позиция като нова променлива.

Третирането на всяко копие като различна променлива и задаване на стойността му няколко пъти е заобиколно решение и болка, както спомена furman87, и може да доведе до грешки, ако се опитвате да пренапишете заявката и да преместите нещата.

Правилният начин е да зададете свойството BindByName на OracleCommand на true, както е посочено по-долу:

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

Можете също така да създадете нов клас за капсулиране на OracleCommand, като зададете BindByName на true при инстанциране, така че не е нужно да задавате стойността всеки път. Това се обсъжда в тази публикация



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Поправете „Не може да се инсталира в Homebrew на ARM процесор в префикс по подразбиране на Intel (/usr/local)!“

  2. Как да използвам псевдоним в клаузата Where?

  3. Каква е точно разликата между първичен индекс и вторичен индекс?

  4. Какво е изглед в Oracle?

  5. Клауза BETWEEN срещу <=И>=