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

System.Data.OracleClient.OracleException:ORA-01036:незаконно име/номер на променлива

Мисля, че проблемът ви е повдигнат от използването на невалидно изброяване във вашите извиквания за добавяне на методи

Ако изпълните този код, можете да забележите, че OracleType за Int32 не е същото като SqlDbType

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

Затова предлагам да използвате правилния enum за вашия ADO.NET доставчик.

Интересно е да се отбележи, че извикването на Add с SqlDbType вместо OracleType се приема и не предизвиква грешка във времето на компилатора. Това се случва, защото методът Add има претоварване, което приема обект като втори параметър (използва се за директно предаване на стойност при конструирането на параметъра).

Алтернатива е да използвате 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. ORA-00903:невалидно име на таблица в PreparedStatement

  2. Добавена дата и модифицирана дата за одит на таблица на Oracle

  3. пуснете таблично пространство, ако не съществува

  4. По-бърз начин за вмъкване чрез скрипт в Oracle?

  5. C# извикване на запаметена функция на Oracle