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

Sådan overføres boolesk parameter til Oracle-procedure C#

Prøv at bruge BindByName egenskaben for OracleCommand som true at tvinge dataudbyderen til at binde disse parametre ved navn og ikke kun for indekset. Du behøver ikke at videregive ' som parametre. Det er lead med parametre i ado.net .

ODP.NET understøtter ikke boolesk datatype. Brug bare 1 eller 0 som en char værdi for at fortsætte det.

For eksempel:

cmd = new Oracle.DataAccess.Client.OracleCommand("Vbank_pkg.vb_log_entry", con);

cmd.BindByName = true;
cmd.CommandType = CommandType.StoredProcedure;

cmd.Parameters.Add("p_rqserial", OracleDbType.Int32).Value = Log_Serial;
cmd.Parameters.Add("p_orig", OracleDbType.Varchar2).Value = p_orig;
cmd.Parameters.Add("p_type", OracleDbType.Char).Value = p_type;
cmd.Parameters.Add("p_objname", OracleDbType.Varchar2).Value = p_objname;
cmd.Parameters.Add("p_info", OracleDbType.Varchar2).Value = p_info;
cmd.Parameters.Add("p_text", OracleDbType.Varchar2).Value = p_text;
cmd.Parameters.Add("p_with_commit", OracleDbType.Char).Value = "1";

cmd.ExecuteNonQuery();


  1. Kan en INNER JOIN tilbyde bedre ydeevne end EKSISTERER

  2. Hvordan fejlretter man postgresql lagrede procedurer?

  3. Ændring af MySQL root-adgangskode

  4. Vælg data mellem et dato-/tidsinterval