如何解决错误:ORA-01036:非法变量名称/编号 [英] How to resolve the Error :ORA-01036: illegal variable name/number

查看:207
本文介绍了如何解决错误:ORA-01036:非法变量名称/编号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

<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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆