sql >> Databasteknik >  >> RDS >> Oracle

Hur man skickar boolesk parameter till Oracle-proceduren C#

Testa att använda BindByName egenskapen för OracleCommand som true för att tvinga dataleverantören att binda dessa parametrar med namn och inte bara för indexet. Du behöver inte skicka ' som parametrar. Det är lead med parametrar i ado.net .

ODP.NET stöder inte boolesk datatyp. Använd bara 1 eller 0 som en char värde för att bestå det.

För exempel:

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. MySQL Infoga kommando vs T-SQL frågesyntax med exempel

  2. Dela en kolumn i flera rader

  3. Star Trek 3D schackdatamodell

  4. Insert Update trigger hur man avgör om infoga eller uppdatera