DataSet批量递交Oracle ORA-01036: 非法的变量名/编号
--------------------------------------SQL------------------------------------------------
insert into JS_JDFP_FPMX(
ID,NSRSBH,NSRMC,JQBH,FPDM,FPHM,HYMC,KPRQ,FKDWDM,
FKDWMC,FKDWDZ,KPLX,KPHJJE,FPSKM,
SKY,KPY,BZ,TPFPDM,TPFPHM,NSR_SWJG_DM
) values(
s_fpmx_id.nextval,:nSRSBH,:nSRMC,:jQBH,:fPDM,:fPHM,
:hYMC,:kPRQ,:fKDWDM,:fKDWMC,:fKDWDZ,:kPLX,:kPHJJE,
:fPSKM,:sKY,:kPY,:bZ,:tPFPDM,:tPFPHM,:nSR_SWJG_DM)
---------------------------------------Datatable------------------------------------------
DataTable dtFPMX = new DataTable("JS_JDFP_FPMX");
dtFPMX.Columns.Add("ID", typeof(string));
dtFPMX.Columns.Add("NSRSBH", typeof(string));
dtFPMX.Columns.Add("NSRMC", typeof(string));
dtFPMX.Columns.Add("JQBH", typeof(string));
dtFPMX.Columns.Add("FPDM", typeof(string));
dtFPMX.Columns.Add("FPHM", typeof(string));
dtFPMX.Columns.Add("HYMC", typeof(string));
dtFPMX.Columns.Add("KPRQ", typeof(DateTime));
dtFPMX.Columns.Add("FKDWDM", typeof(string));
dtFPMX.Columns.Add("FKDWMC", typeof(string));
dtFPMX.Columns.Add("FKDWDZ", typeof(string));
dtFPMX.Columns.Add("KPLX", typeof(char));
dtFPMX.Columns.Add("KPHJJE", typeof(decimal));
dtFPMX.Columns.Add("FPSKM", typeof(string));
dtFPMX.Columns.Add("SKY", typeof(string));
dtFPMX.Columns.Add("KPY", typeof(string));
dtFPMX.Columns.Add("BZ", typeof(string));
dtFPMX.Columns.Add("TPFPDM", typeof(string));
dtFPMX.Columns.Add("TPFPHM", typeof(string));
dtFPMX.Columns.Add("NSR_SWJG_DM", typeof(string));
---------------------------------------C# code-------------------------------------------
oda = new OracleDataAdapter();
oda.InsertCommand = new OracleCommand();
oda.InsertCommand.Connection = ocon;
oda.InsertCommand.Transaction = otran;
oda.InsertCommand.CommandText = sb_FPMX.ToString();
OracleParameter[] op = {
new OracleParameter("nSRSBH",OracleType.VarChar,20),
new OracleParameter("nSRMC",OracleType.VarChar,200),
new OracleParameter("jQBH",OracleType.VarChar,16),
new OracleParameter("fPDM",OracleType.VarChar,20),
new OracleParameter("fPHM",OracleType.VarChar,10),
new OracleParameter("hYMC",OracleType.VarChar,20),
new OracleParameter("kPRQ",OracleType.DateTime),
new OracleParameter("fKDWDM",OracleType.VarChar,30),
new OracleParameter("fKDWMC",OracleType.VarChar,200),
new OracleParameter("fKDWDZ",OracleType.VarChar,200),
new OracleParameter("kPLX",OracleType.Char),
new OracleParameter("kPHJJE",OracleType.Number),
new OracleParameter("fPSKM",OracleType.VarChar,20),
new OracleParameter("sKY",OracleType.VarChar,30),
new OracleParameter("kPY",OracleType.VarChar,30),
new OracleParameter("bZ",OracleType.VarChar,300),
new OracleParameter("tPFPDM",OracleType.VarChar,12),
new OracleParameter("tPFPHM",OracleType.VarChar,10),
new OracleParameter("nSR_SWJG_DM",OracleType.VarChar,11)
};
#region ParameterMapping
op[0].SourceVersion = DataRowVersion.Current;
op[0].SourceColumn = "NSRSBH";
op[1].SourceVersion = DataRowVersion.Current;
op[1].SourceColumn = "NSRMC";
op[2].SourceVersion = DataRowVersion.Current;
op[2].SourceColumn = "JQBH";
op[3].SourceVersion = DataRowVersion.Current;
op[3].SourceColumn = "FPDM";
op[4].SourceVersion = DataRowVersion.Current;
op[4].SourceColumn = "FPHM";
op[5].SourceVersion = DataRowVersion.Current;
op[5].SourceColumn = "HYMC";
op[6].SourceVersion = DataRowVersion.Current;
op[6].SourceColumn = "KPRQ";
op[7].SourceVersion = DataRowVersion.Current;
op[7].SourceColumn = "FKDWDM";
op[8].SourceVersion = DataRowVersion.Current;
op[8].SourceColumn = "FKDWMC";
op[9].SourceVersion = DataRowVersion.Current;
op[9].SourceColumn = "FKDWDZ";
op[10].SourceVersion = DataRowVersion.Current;
op[10].SourceColumn = "KPLX";
op[11].SourceVersion = DataRowVersion.Current;
op[11].SourceColumn = "KPHJJE";
op[12].SourceVersion = DataRowVersion.Current;
op[12].SourceColumn = "FPSKM";
op[13].SourceVersion = DataRowVersion.Current;
op[13].SourceColumn = "SKY";
op[14].SourceVersion = DataRowVersion.Current;
op[14].SourceColumn = "KPY";
op[15].SourceVersion = DataRowVersion.Current;
op[15].SourceColumn = "BZ";
op[16].SourceVersion = DataRowVersion.Current;
op[16].SourceColumn = "TPFPDM";
op[17].SourceVersion = DataRowVersion.Current;
op[17].SourceColumn = "TPFPHM";
op[18].SourceVersion = DataRowVersion.Current;
op[18].SourceColumn = "NSR_SWJG_DM";
-----------------------------------------------------------------------------------------------
各位高手留意,Datatable中声明了ID列而Parameter中并没有声明该参数.
ID为序列,经过测试不用声明ID.
SQL语句 PL/SQL通过.
希望各位帮帮忙,已经闹心了半天了,谢了!