oracle中变量前加,向oracle中插入数据时提示“ORA-01008: 并非所有变量都已绑定”...

StringBuilder strSql=new StringBuilder();

strSql.Append("insert into LB000(");

strSql.Append("LBID,CARRIER,COMPANY_NAME,DOM_ASTD_WGT,FRN_ASTD_WGT,DOM_CSTD_WT,FRN_CSTD_WT,DOM_ISTD_WT,FRN_ISTD_WT,DOM_CREWSTD_WGT,FRN_CREWSTD_WGT,ENTER,ENTER_TIME,CHECK_P,CHECK_TIME,ISDELETE)");

strSql.Append(" values (");

strSql.Append(":LBID,:CARRIER,:COMPANY_NAME,:DOM_ASTD_WGT,:FRN_ASTD_WGT,:DOM_CSTD_WT,:FRN_CSTD_WT,:DOM_ISTD_WT,:FRN_ISTD_WT,:DOM_CREWSTD_WGT,:FRN_CREWSTD_WGT,:ENTER,:ENTER_TIME,:CHECK_P,:CHECK_TIME,:ISDELETE)");

OracleParameter[] parameters = {

new OracleParameter(":LBID", OracleType.Number,4),

new OracleParameter(":CARRIER", OracleType.Char,2),

new OracleParameter(":COMPANY_NAME", OracleType.VarChar,50),

new OracleParameter(":DOM_ASTD_WGT", OracleType.Number,3),

new OracleParameter(":FRN_ASTD_WGT", OracleType.Number,3),

new OracleParameter(":DOM_CSTD_WT", OracleType.Number,3),

new OracleParameter(":FRN_CSTD_WT", OracleType.Number,3),

new OracleParameter(":DOM_ISTD_WT", OracleType.Number,3),

new OracleParameter(":FRN_ISTD_WT", OracleType.Number,3),

new OracleParameter(":DOM_CREWSTD_WGT", OracleType.Number,3),

new OracleParameter(":FRN_CREWSTD_WGT", OracleType.Number,3),

new OracleParameter(":ENTER", OracleType.VarChar,8),

new OracleParameter(":ENTER_TIME", OracleType.DateTime),

new OracleParameter(":CHECK_P", OracleType.VarChar,8),

new OracleParameter(":CHECK_TIME", OracleType.DateTime),

new OracleParameter(":ISDELETE", OracleType.Number,1)};

parameters[0].Value = GetGUID();

parameters[1].Value = model.CARRIER;

parameters[2].Value = model.COMPANY_NAME;

parameters[3].Value = model.DOM_ASTD_WGT;

parameters[4].Value = model.FRN_ASTD_WGT;

parameters[5].Value = model.DOM_CSTD_WT;

parameters[6].Value = model.FRN_CSTD_WT;

parameters[7].Value = model.DOM_ISTD_WT;

parameters[8].Value = model.FRN_ISTD_WT;

parameters[9].Value = model.DOM_CREWSTD_WGT;

parameters[10].Value = model.FRN_CREWSTD_WGT;

parameters[11].Value = model.ENTER;

parameters[12].Value = DateTime.Now;

parameters[13].Value = model.CHECK_P;

parameters[14].Value = DateTime.Now;

parameters[15].Value = model.ISDELETE;

int rows=DbHelperOra.ExecuteSql(strSql.ToString(),parameters);

之后添加数据,总是报“ORA-01008: 并非所有变量都已绑定”的错误。经过仔细检查,和网上搜索,

新增如下代码就可解决

//新增以下代码foreach (OracleParameter parm in parms)

{

if (parm.Value == null)

parm.Value = DBNull.Value;

}

总结:

在对象引用类型的属性没有赋值的情况下,值为 null将 null 赋予参数对象的 value 属性,相当于没有赋值,所以 Oracle 报 ORA-01008: 并非所有变量都已绑定对于准备赋予数据库 null 的参数应该明确赋予 DBNull

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值