.net+Oracle
如下代码:
出现System.Data.OracleClient.OracleException: ORA-01036: 非法的变量名/编号
问题
可能之一就是你的名称不对应
比如 :xwlx 写成 :xxlx所引起的
或则 // 客户类型,客户编号,客户名称,开户行,账户,税号,地址,邮编,电话号码,手机,传真,邮箱,联系人,客户生日,特点,备注,更新日期,更新人,SN
String sqlUpdate = "UPDATE kehuxinxi SET 客户类型=:khlx,客户编号=:khbh,客户名称=:khmc,开户行=:khh,账户=:zh,税号=:sh,地址=:dz,邮编=:yb,"
+ "电话号码=:dhhm,手机=:sj,传真=:cz,邮箱=:yx,联系人=:lxl,客户生日=:khsr,特点=:td,备注=:bz,更新日期=:gxrq,更新人=:gxr"
+ " WHERE SN=:sn";
其中少写了个,比如 电话号码=:dhhm,手机=:sj, 写成 电话号码=:dhhm 手机=:sj,
如下代码:
//
有事务处理 SN的生成
String sqlInsert = " INSERT INTO xinwen(建立日期,建立时间,新闻标题,新闻类别,新闻类型,新闻内容,关键字,新闻来源,点击次数,发布部门,经办人,SN) VALUES(:jlrq,:jlsj,:xwbt,:xwlb,:xwlx,:xwnr,:gjz,:xwly,:djcs,:fbbm,:jbr,:sn) " ;
OracleParameter[] parms = {
new OracleParameter(":jlrq", OracleType.Char, 10),
new OracleParameter(":jlsj", OracleType.Char, 10),
new OracleParameter(":xwbt", OracleType.VarChar, 512),
new OracleParameter(":xwlb", OracleType.Char, 8),
new OracleParameter(":xwlx", OracleType.Char, 8),
new OracleParameter(":xwnr", OracleType.Clob),
new OracleParameter(":gjz", OracleType.Char, 128),
new OracleParameter(":xwly", OracleType.VarChar, 1024),
new OracleParameter(":djcs", OracleType.Number, 8),
new OracleParameter(":fbbm", OracleType.Char, 64),
new OracleParameter(":jbr", OracleType.Char, 20),
new OracleParameter(":sn", OracleType.Char, 32)
} ;
parms[ 0 ].Value = this .TextBoxJianLiRiQi.Text.Trim();
parms[ 1 ].Value = this .TextBoxJianLiShiJian.Text.Trim();
parms[ 2 ].Value = this .TextBoxXinWenBiaoTi.Text.Trim();
parms[ 3 ].Value = this .DropDownListXinWenLeiBie.SelectedItem.Text.Trim();
parms[ 4 ].Value = this .DropDownListXinWenLeiXin.SelectedItem.Text.Trim();
parms[ 5 ].Value = this .FreeTextBoxXinWenNeiRong.Text;
parms[ 6 ].Value = this .TextBoxGuanJianZi.Text.Trim();
parms[ 7 ].Value = this .TextBoxXinWenLaiYuan.Text.Trim();
parms[ 8 ].Value = 0 ;
parms[ 9 ].Value = this .TextBoxFaBuBuMen.Text.Trim();
parms[ 10 ].Value = this .TextBoxJinBanRen.Text.Trim();
parms[ 11 ].Value = this .LabelZhuJian.Text.Trim();
OracleConnection conn = new OracleConnection(OracleHelper.DatabaseConnStr);
conn.Open();
OracleTransaction trans = conn.BeginTransaction(IsolationLevel.ReadCommitted);
try
{
OracleHelper.ExecuteNonQuery(trans, CommandType.Text, sqlInsert, parms);
trans.Commit();
}
catch (Exception ex)
{
trans.Rollback();
ex.ToString();
}
finally
{
conn.Close();
}
String sqlInsert = " INSERT INTO xinwen(建立日期,建立时间,新闻标题,新闻类别,新闻类型,新闻内容,关键字,新闻来源,点击次数,发布部门,经办人,SN) VALUES(:jlrq,:jlsj,:xwbt,:xwlb,:xwlx,:xwnr,:gjz,:xwly,:djcs,:fbbm,:jbr,:sn) " ;
OracleParameter[] parms = {
new OracleParameter(":jlrq", OracleType.Char, 10),
new OracleParameter(":jlsj", OracleType.Char, 10),
new OracleParameter(":xwbt", OracleType.VarChar, 512),
new OracleParameter(":xwlb", OracleType.Char, 8),
new OracleParameter(":xwlx", OracleType.Char, 8),
new OracleParameter(":xwnr", OracleType.Clob),
new OracleParameter(":gjz", OracleType.Char, 128),
new OracleParameter(":xwly", OracleType.VarChar, 1024),
new OracleParameter(":djcs", OracleType.Number, 8),
new OracleParameter(":fbbm", OracleType.Char, 64),
new OracleParameter(":jbr", OracleType.Char, 20),
new OracleParameter(":sn", OracleType.Char, 32)
} ;
parms[ 0 ].Value = this .TextBoxJianLiRiQi.Text.Trim();
parms[ 1 ].Value = this .TextBoxJianLiShiJian.Text.Trim();
parms[ 2 ].Value = this .TextBoxXinWenBiaoTi.Text.Trim();
parms[ 3 ].Value = this .DropDownListXinWenLeiBie.SelectedItem.Text.Trim();
parms[ 4 ].Value = this .DropDownListXinWenLeiXin.SelectedItem.Text.Trim();
parms[ 5 ].Value = this .FreeTextBoxXinWenNeiRong.Text;
parms[ 6 ].Value = this .TextBoxGuanJianZi.Text.Trim();
parms[ 7 ].Value = this .TextBoxXinWenLaiYuan.Text.Trim();
parms[ 8 ].Value = 0 ;
parms[ 9 ].Value = this .TextBoxFaBuBuMen.Text.Trim();
parms[ 10 ].Value = this .TextBoxJinBanRen.Text.Trim();
parms[ 11 ].Value = this .LabelZhuJian.Text.Trim();
OracleConnection conn = new OracleConnection(OracleHelper.DatabaseConnStr);
conn.Open();
OracleTransaction trans = conn.BeginTransaction(IsolationLevel.ReadCommitted);
try
{
OracleHelper.ExecuteNonQuery(trans, CommandType.Text, sqlInsert, parms);
trans.Commit();
}
catch (Exception ex)
{
trans.Rollback();
ex.ToString();
}
finally
{
conn.Close();
}
出现System.Data.OracleClient.OracleException: ORA-01036: 非法的变量名/编号
问题
可能之一就是你的名称不对应
比如 :xwlx 写成 :xxlx所引起的
或则 // 客户类型,客户编号,客户名称,开户行,账户,税号,地址,邮编,电话号码,手机,传真,邮箱,联系人,客户生日,特点,备注,更新日期,更新人,SN
String sqlUpdate = "UPDATE kehuxinxi SET 客户类型=:khlx,客户编号=:khbh,客户名称=:khmc,开户行=:khh,账户=:zh,税号=:sh,地址=:dz,邮编=:yb,"
+ "电话号码=:dhhm,手机=:sj,传真=:cz,邮箱=:yx,联系人=:lxl,客户生日=:khsr,特点=:td,备注=:bz,更新日期=:gxrq,更新人=:gxr"
+ " WHERE SN=:sn";
其中少写了个,比如 电话号码=:dhhm,手机=:sj, 写成 电话号码=:dhhm 手机=:sj,