sql >> Database >  >> RDS >> Oracle

System.Data.OracleClient.OracleException:ORA-01036:illegale variabele naam/nummer

Ik denk dat uw probleem wordt veroorzaakt door het gebruik van een ongeldige opsomming in uw Add-methodes-aanroepen

Als u deze code uitvoert, zou u kunnen opmerken dat de OracleType voor Int32 is niet hetzelfde als 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

Ik raad dus aan om de juiste opsomming te gebruiken voor uw ADO.NET-provider.

Het is interessant op te merken dat het aanroepen van Add met SqlDbType in plaats van OracleType wordt geaccepteerd en veroorzaakt geen compileertijdfout. Dit gebeurt omdat de methode Add een overbelasting heeft die een object als tweede parameter accepteert (het wordt gebruikt om direct een waarde door te geven bij het construeren van de parameter).

Een alternatief is het gebruik van AddWithValue van de 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. Update records in tabel vanuit CTE

  2. query voor horizontale lay-out van mysql-gegevens

  3. Hoe kan ik versies van bugzilla migreren naar een nieuw aangepast veld 'bronversie' in redmine (welke SQL-syntaxis heb ik nodig)?

  4. Postgres jsonb-query op genest object