Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment passer un paramètre booléen à la procédure Oracle C#

Essayez d'utiliser BindByName propriété de OracleCommand comme true pour forcer le fournisseur de données à lier ces paramètres par nom et pas seulement pour l'index. Vous n'avez pas besoin de passer le ' comme paramètres. Il est conduit avec des paramètres dans le ado.net .

ODP.NET ne prend pas en charge le type de données booléen. Utilisez simplement 1 ou 0 sous forme de char valeur pour la persister.

Pour l'échantillon :

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();