ODP技术,参数可以为数组
注意事项
1、时间处理
//防止数据库中有DATE类型的数据,不设置格式则会出现无效月份的情况,如:new OracleDate("2011-08-26 17:18:19");
OracleGlobalization og = OracleGlobalization.GetClientInfo();
og.DateFormat = "YYYY-MM-DD HH24:MI:SS"; //格式字符串不区分大小写,本质是使用oracle中to_date函数
OracleGlobalization.SetThreadInfo(og);
OracleDate.Null; //时间为空
2、数值类型
将参数设置为OracleDbType.Decimal
如果值为null,则自动会处理为OracleDecimal.Null
3、数组中值的数量得等于指定长度
/// <summary>
/// 批量插入
/// </summary>
/// <param name="recordCount">插入数量</param>
/// <param name="sql">insert语句</param>
/// <param name="paras">参数</param>
public static void BatchInsert(int recordCount, string sql, OracleParameter[] paras)
{
using (OracleConnection conn = new OracleConnection(connString))
{
using (OracleCommand command = new OracleCommand
{
Connection = conn,
/*这个参数需要指定每次批插入的记录数 */
ArrayBindCount = recordCount,
CommandText = sql
})
{
conn.Open();
//添加参数
if (paras != null)
{
command.Parameters.AddRange(paras);
}
//这个调用将把参数数组传进SQL,同时写入数据库
command.ExecuteNonQuery();
command.Parameters.Clear();
}
conn.Close();
}
}