Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So übergeben Sie boolesche Parameter an die Oracle-Prozedur C#

Versuchen Sie es mit BindByName Eigenschaft von OracleCommand als true um den Datenanbieter zu zwingen, diese Parameter nach Namen und nicht nur für den Index zu binden. Sie müssen den ' nicht übergeben als Parameter. Es wird mit Parametern im ado.net geführt .

ODP.NET unterstützt keinen booleschen Datentyp. Verwenden Sie einfach 1 oder 0 als char Wert, um es zu behalten.

Beispiel:

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