如何解决错误:ORA-01036:非法变量名称/编号 [英] How to resolve the Error :ORA-01036: illegal variable name/number
问题描述
<pre lang="sql">else
{
//str.Append(o_Qry_Security.qry_UpdateGroupID_UserRightsMaster(User_Master_ID, Convert.ToInt32(SessionCheck.s_sessionusergroupid))); // COMMENTED ON 29-07 Vinodita
o_Qry_Security.qry_UpdateGroupID_UserRightsMaster(User_Master_ID,t_MAKERDATETIME, Convert.ToInt32(SessionCheck.s_sessionusergroupid));
}</pre>
public void qry_UpdateGroupID_UserRightsMaster(int usermasterinternalid,string MAKERDATETIME,int makerid)
{
// StringBuilder strBuilder = new StringBuilder();
// strBuilder.Append(UPDATE USER_RIGHTS_MASTER);
//strBuilder.Append(SET);
//strBuilder.Append(MAKER_ID =:makerid, );
//strBuilder.Append(MAKER_DATETIME = TO_DATE(:MAKERDATETIME,'DD-MM-YYYY')WHERE ID =:usermasterinternalid);
// s_dsnstr = o_Cls_Utility.utl_fnGetDSNStr(SessionCheck.s_sessiondpid);
// OracleConnect o_Cls_OracleConnect = new OracleConnect(s_dsnstr);
//o_Cls_OracleConnect.OracleCommand_PreInit(strBuilder.ToString() );
//o_Cls_OracleConnect.Parameter_Int32(\"MAKER_ID,makerid);
//o_Cls_OracleConnect.Parameter_String(\"MAKERDATETIME,MAKERDATETIME );
//o_Cls_OracleConnect.Parameter_Int32(\"usermasterinternalid,usermasterinternalid);
//o_Cls_OracleConnect.ExecNonQuery();
//strBuilder.Remove(0,strBuilder.Length);
StringBuilder strBuilder = new StringBuilder();
strBuilder.Append(UPDATE USER_RIGHTS_MASTER);
strBuilder.Append(SET);
strBuilder.Append(MAKER_ID =:makerid,);
strBuilder.Append( MAKER_DATETIME = TO_DATE(:MAKERDATETIME,'DD-MM-YYYY')WHERE ID =:usermasterinternalid);
s_dsnstr = o_Cls_Utility.utl_fnGetDSNStr(SessionCheck.s_sessiondpid );
OracleConnect o_Cls_OracleConnect = new OracleConnect(s_dsnstr);
o_Cls_OracleConnect.OracleCommand_PreInit(strBuilder.ToString());
o_Cls_OracleConnect.Parameter_Int32(MAKER_ID,makerid);
o_Cls_OracleConnect.Parameter_String(MAKERDATETIME,MAKERDATETIME);
o_Cls_OracleConnect.Parameter_Int32(usermasterinternalid, usermasterinternalid);
o_Cls_OracleConnect.ExecNonQuery();
strBuilder.Remove(0,strBuilder.Length );
}
public void qry_UpdateGroupID_UserRightsMaster(int usermasterinternalid, string MAKERDATETIME,int makerid)
{
//StringBuilder strBuilder = new StringBuilder();
//strBuilder.Append(" UPDATE USER_RIGHTS_MASTER ");
//strBuilder.Append(" SET ");
//strBuilder.Append(" MAKER_ID =:makerid , ");
//strBuilder.Append(" MAKER_DATETIME = TO_DATE(:MAKERDATETIME, 'DD-MM-YYYY') WHERE ID =: usermasterinternalid ");
//s_dsnstr = o_Cls_Utility.utl_fnGetDSNStr(SessionCheck.s_sessiondpid);
//OracleConnect o_Cls_OracleConnect = new OracleConnect(s_dsnstr);
//o_Cls_OracleConnect.OracleCommand_PreInit(strBuilder.ToString());
//o_Cls_OracleConnect.Parameter_Int32("MAKER_ID", makerid);
//o_Cls_OracleConnect.Parameter_String("MAKERDATETIME", MAKERDATETIME);
//o_Cls_OracleConnect.Parameter_Int32("usermasterinternalid", usermasterinternalid);
//o_Cls_OracleConnect.ExecNonQuery();
//strBuilder.Remove(0, strBuilder.Length);
StringBuilder strBuilder = new StringBuilder();
strBuilder.Append(" UPDATE USER_RIGHTS_MASTER ");
strBuilder.Append(" SET ");
strBuilder.Append(" MAKER_ID =:makerid , ");
strBuilder.Append(" MAKER_DATETIME = TO_DATE(:MAKERDATETIME, 'DD-MM-YYYY') WHERE ID =: usermasterinternalid ");
s_dsnstr = o_Cls_Utility.utl_fnGetDSNStr(SessionCheck.s_sessiondpid);
OracleConnect o_Cls_OracleConnect = new OracleConnect(s_dsnstr);
o_Cls_OracleConnect.OracleCommand_PreInit(strBuilder.ToString());
o_Cls_OracleConnect.Parameter_Int32("MAKER_ID", makerid);
o_Cls_OracleConnect.Parameter_String("MAKERDATETIME", MAKERDATETIME);
o_Cls_OracleConnect.Parameter_Int32("usermasterinternalid", usermasterinternalid);
o_Cls_OracleConnect.ExecNonQuery();
strBuilder.Remove(0, strBuilder.Length);
}
public void ExecNonQuery()
{
try
{
MyCmd.Transaction = MyTrans;
MyCmd.ExecuteNonQuery();
}
catch (Exception ex)
{
MyTrans.Rollback();
throw ex;
}
finally
{
if (!(MyCmd == null))
{
MyCmd.Dispose();
}
MyCmd = null;
}
}
我在catch语句中收到错误:ORA -01036:非法变量名称/号码
I get an error at catch statement :ORA-01036: illegal variable name/number
推荐答案
问题在这里!
The problem is here!
o_Cls_OracleConnect.Parameter_Int32("MAKER_ID", makerid);
此时你要声明一个名为:makerid的参数但是在创建参数的时间你将它创建为MAKER_ID。
at this point you are declaring a parameter named :makerid but at the time of parameter creation you are creating it as MAKER_ID.
strBuilder.Append(" MAKER_ID =:makerid , ");
要解决此问题,请执行此操作
To fix this issue do this
<pre>o_Cls_OracleConnect.Parameter_Int32("makerid", makerid);
使用System.Data.OracleClient连接到Oracle数据库时,参数未正确传递给SQLDatasource或Command对象时发生此错误。
This error occurs when the parameters are not properly passed to the SQLDatasource or Command object when connecting to Oracle Database using System.Data.OracleClient.
了解更多信息c哎呀:
http://www.aspsnippets.com/Articles/Exception---ORA-01036-illegal-variable-namenumber.aspx [ ^ ]
和this:
http:// forums .asp.net / t / 1244079.aspx / 1 [ ^ ]
我希望这会对你有所帮助。
For more info check this :
http://www.aspsnippets.com/Articles/Exception---ORA-01036-illegal-variable-namenumber.aspx[^]
and this :
http://forums.asp.net/t/1244079.aspx/1[^]
I hope this will help to you.
这篇关于如何解决错误:ORA-01036:非法变量名称/编号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!