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

come eseguire più query Oracle c#

Anche se stai usando nomi per i tuoi parametri, il tuo autista li sta trattando in modo posizionale. In un certo senso puoi dirlo perché corrisponde (quasi) a :1 con il nome p_cr1 - '1' non è un nome valido. Non si lamenta poiché corrisponde in posizione, ma ciò significa che sta cercando di usare il P_para per :1 , e poiché il tipo è sbagliato, questo spiega l'errore che vedi.

Potrebbe esserci un modo per cambiare il comportamento del driver, ma per ora puoi semplicemente scambiare l'ordine in cui li leghi, quindi i collegamenti si verificano nello stesso ordine (posizione) in cui le variabili appaiono nella query. Quindi:

cmd.Parameters.Add("p_cr1", OracleDbType.RefCursor, DBNull.Value, ParameterDirection.Output);
cmd.Parameters.Add(new OracleParameter(":P_para", OracleDbType.Int64)).Value = Convert.ToInt64(Textbox.Text);
cmd.Parameters.Add("p_cr2", OracleDbType.RefCursor, DBNull.Value, ParameterDirection.Output);