Oracle
 sql >> Baza danych >  >> RDS >> Oracle

ORA-01008:nie wszystkie zmienne są powiązane. Są związani

Wiem, że to stare pytanie, ale nie zostało ono poprawnie rozwiązane, więc odpowiadam na nie innym, którzy mogą napotkać ten problem.

Domyślnie ODP.net Oracle wiąże zmienne według pozycji i traktuje każdą pozycję jako nową zmienną.

Traktowanie każdej kopii jako innej zmiennej i wielokrotne ustawianie jej wartości jest obejściem i problemem, jak wspomniał furman87, i może prowadzić do błędów, jeśli próbujesz przepisać zapytanie i przenosić różne elementy.

Prawidłowym sposobem jest ustawienie właściwości BindByName OracleCommand na true, jak poniżej:

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

Można również utworzyć nową klasę do hermetyzacji OracleCommand, ustawiając BindByName na true podczas tworzenia, dzięki czemu nie trzeba ustawiać wartości za każdym razem. Zostało to omówione w tym poście



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uzyskać informacje o błędzie kompilacji w Oracle/TOAD?

  2. Załaduj arkusz danych Excel do bazy danych Oracle

  3. Połączenie oci_connect nie powiodło się

  4. Powtarzające się wiersze na podstawie wartości kolumny w każdym wierszu

  5. EF 4, jak dodać częściowe klasy