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

System.Data.OracleClient.OracleException:ORA-01036:nieprawidłowa nazwa/numer zmiennej

Myślę, że Twój problem jest spowodowany użyciem nieprawidłowego wyliczenia w wywołaniach Add Method

Jeśli uruchomisz ten kod, możesz zauważyć, że OracleType dla Int32 to nie to samo co TypSqlDb

OracleType e = OracleType.Int32;
int i = (int)e;
Console.WriteLine(i.ToString());   // Output = 28
SqlDbType z = SqlDbType.Int;
i = (int)z;
Console.WriteLine(i.ToString());   // Output = 8

Proponuję więc użyć poprawnego wyliczenia dla swojego dostawcy ADO.NET.

Warto zauważyć, że wywołanie Add z SqlDbType zamiast OracleType jest akceptowane i nie zgłaszaj błędu czasu kompilatora. Dzieje się tak, ponieważ metoda Add ma przeciążenie, które akceptuje obiekt jako drugi parametr (jest używany do bezpośredniego przekazywania wartości podczas konstruowania parametru).

Alternatywą jest użycie AddWithValue OracleParameterCollection

   command.Parameters.AddWithValue("@course_Id", course_Id);
   command.Parameters.AddWithValue("@question", question);
   command.Parameters.AddWithValue("@posterName", posterName);
   command.Parameters.AddWithValue("@blogdate", blog_date);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oświadczenie Oracle

  2. Staram się osiągnąć wynik poniżej wyniku

  3. Oracle:Zmiana kolumny VARCHAR2 na CLOB

  4. Otwórz modalne okno dialogowe za pomocą JavaScript Oracle APEX

  5. Zapytanie SQL zwracające dane tylko wtedy, gdy WSZYSTKIE niezbędne kolumny są obecne, a nie NULL