Thử sử dụng BindByName
thuộc tính của OracleCommand
dưới dạng true
để buộc nhà cung cấp dữ liệu ràng buộc các tham số này theo tên chứ không chỉ cho chỉ mục. Bạn không cần phải chuyển '
dưới dạng các tham số. Nó dẫn đầu với các tham số trong ado.net
.
ODP.NET không hỗ trợ kiểu dữ liệu Boolean. Chỉ cần sử dụng 1
hoặc 0
dưới dạng một char
giá trị để duy trì nó.
Đối với mẫu:
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();