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

System.Data.OracleClient.OracleException:ORA-01036:nome/numero variabile non valido

Penso che il tuo problema sia sollevato dall'uso di un'enumerazione non valida nelle tue chiamate ai metodi Aggiungi

Se esegui questo codice, potresti notare che Tipo Oracle per Int32 non è lo stesso di TipoSqlDb

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

Quindi, suggerisco di utilizzare l'enumerazione corretta per il tuo provider ADO.NET.

È interessante notare che la chiamata di Add con SqlDbType invece di OracleType è accettato e non genera un errore in fase di compilazione. Ciò accade perché il metodo Add ha un overload che accetta un oggetto come secondo parametro (viene utilizzato per passare direttamente un valore durante la costruzione del parametro).

Un'alternativa è usare AddWithValue della OracleParameterCollection

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