private void TestODPClient(string cnStr, string cmdText, DateTime date)
{ ODP.OracleCommand cmd = new ODP.OracleCommand(cmdText);
cmd.Parameters.Add("pDate", date); RunTest(@"Add DateTime wo OracleDbType", cmd, cnStr);
cmd = new ODP.OracleCommand(cmdText);
cmd.Parameters.Add("pDate", ODP.OracleDbType.Date).Value = date; RunTest(@"Add DateTime w/ OracleDbType", cmd, cnStr);
cmd = new ODP.OracleCommand(cmdText);
cmd.CommandText = cmd.CommandText.Replace(":pDate", "TO_DATE('" + date.ToString("yyyyMMdd") + "', 'YYYYMMDD')"); RunTest("Ad-Hoc SQL Style", cmd, cnStr);
cmd = new ODP.OracleCommand(cmdText);
cmd.CommandText = cmd.CommandText.Replace(":pDate", "TO_DATE(:pDateStr, 'YYYYMMDD')");
cmd.Parameters.Add("pDateStr", date.ToString("yyyyMMdd")); RunTest(@"Add String wo OracleDbType", cmd, cnStr);
cmd = new ODP.OracleCommand(cmdText);
cmd.CommandText = cmd.CommandText.Replace(":pDate", "TO_DATE(:pDateStr, 'YYYYMMDD')");
cmd.Parameters.Add("pDateStr", ODP.OracleDbType.Varchar2).Value = date.ToString("yyyyMMdd"); RunTest(@"Add String w/ OracleDbType", cmd, cnStr);
}
private void RunTest(string testName, ODP.OracleCommand cmd, string cnStr)
{ using (ODP.OracleConnection cn = new
Oracle.DataAccess.Client.OracleConnection(cnStr))
{ cmd.Connection = cn;
DataTable dt = new DataTable();
cn.Open();
Stopwatch sw = new Stopwatch();
sw.Start();
ODP.OracleDataReader dr = cmd.ExecuteReader();
dt.Load(dr);
sw.Stop();
cn.Close();
Response.Write(
string.Format("<li>Test {0} Rows={1} Duration={2:#,0}ms", testName, dt.Rows.Count, sw.ElapsedMilliseconds));
}
}