sql >> Database teknologi >  >> RDS >> Oracle

System.Data.OracleClient.OracleException:ORA-01036:ulovlig variabelnavn/nummer

Jeg tror, ​​at dit problem er rejst ved brugen af ​​en ugyldig enum i dine Tilføj metoder-kald

Hvis du kører denne kode, kan du bemærke, at OracleType for Int32 er ikke det samme som 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

Så jeg foreslår, at du bruger den korrekte enum for din ADO.NET-udbyder.

Det er interessant at bemærke, at kalder Tilføj med SqlDbType i stedet for OracleType er accepteret og rejser ikke en kompileringstidsfejl. Dette sker, fordi Add-metoden har en overbelastning, der accepterer et objekt som anden parameter (den bruges til at sende en værdi direkte, når parameteren konstrueres).

Et alternativ er at bruge AddWithValue af 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. Omdøb en kolonne i MySQL

  2. Hvad er Javas JPA-teknologi?

  3. Spring Data med Mysql JSON type

  4. SQLite-tabelbegrænsning unik og ON CONFLICT REPLACE-brug