sql >> Base de Datos >  >> RDS >> Oracle

System.Data.OracleClient.OracleException:ORA-01036:nombre/número de variable ilegal

Creo que su problema surge por el uso de una enumeración no válida en sus llamadas de métodos Agregar

Si ejecuta este código, podría notar que Tipo de Oracle para Int32 no es lo mismo que SqlDbTipo

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

Por lo tanto, sugiero usar la enumeración correcta para su proveedor ADO.NET.

Es interesante notar que llamar a Agregar con SqlDbType en lugar de OracleType se acepta y no genera un error de tiempo del compilador. Esto sucede porque el método Add tiene una sobrecarga que acepta un objeto como segundo parámetro (Se usa para pasar directamente un valor al construir el parámetro).

Una alternativa es usar AddWithValue de la OracleParameterCollection

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