如何实现数据库批量插入oracle11g

(1)原材料

1.装oracle客户端

2.使用Oracle.DataAccess.dll这个扩展

3.using Oracle.DataAccess.Client;

(2)如何执行语句

批量插入就要绑定参数(这里是重点)

1.一定要注意参数的位置和sql语句中的位置赋值顺序要完全一模一样才可以否则一定会报一个错

2.参数前一定要加:号用来表示他是参数

/*对数据库操作开始*/
            OracleCommand comm = new OracleCommand();
            comm.ArrayBindCount = STARTDAT.Length;
            //时间
            OracleParameter dateTm = new OracleParameter("dateTm", OracleDbType.Date);
            dateTm.Direction = ParameterDirection.Input;
            dateTm.Value = STARTDATTure;
            comm.Parameters.Add(dateTm);
            //台站id
            OracleParameter stationID = new OracleParameter("stationId", OracleDbType.Varchar2);
            stationID.Direction = ParameterDirection.Input;
            stationID.Value = stationId;
            comm.Parameters.Add(stationID);
            //测点id
            OracleParameter pointID = new OracleParameter("pointId", OracleDbType.Varchar2);
            pointID.Direction = ParameterDirection.Input;
            pointID.Value = pointId;
            comm.Parameters.Add(pointID);
            //侧向id
            OracleParameter itemID = new OracleParameter("itemId", OracleDbType.Varchar2);
            itemID.Direction = ParameterDirection.Input;
            itemID.Value = itemId;
            comm.Parameters.Add(itemID);
            //未知此字段含义
            OracleParameter samP = new OracleParameter("samp", OracleDbType.Varchar2);
            samP.Direction = ParameterDirection.Input;
            samP.Value = samp;
            comm.Parameters.Add(samP);
            //24值
            OracleParameter hourValue = new OracleParameter("hourValue", OracleDbType.Varchar2);
            hourValue.Direction = ParameterDirection.Input;
            hourValue.Value = OBSVALUE;
            comm.Parameters.Add(hourValue);
            //
            OracleParameter DATEI = new OracleParameter("DATEINDEX", OracleDbType.Varchar2);
            DATEI.Direction = ParameterDirection.Input;
            DATEI.Value = DATEINDEX;
            comm.Parameters.Add(DATEI);
            try
            {
                comm.Connection = con;
                comm.CommandType = CommandType.Text;
                comm.CommandText = "INSERT INTO XIAOHUIHUI." + TableName + "(STARTDATE,STATIONID,POINTID,ITEMID,SAMPLERATE,OBSVALUE,DATE_INDEX)VALUES(to_date(:dateTm ,'yyyy-mm-dd hh24:mi:ss'),:stationId,:pointId,:itemId,:samp,:hourValue,:DATEINDEX)";
                int sqlNum = comm.ExecuteNonQuery();
            }
            catch (OracleException e)
            {
                string result = e.Message;
                MessageBox.Show("出现错误请改正:" + result);
            }
            /*对数据库操作结束*/
            dividedNum--;
            hourDataTable.Clear();
            con.Close();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值