当前位置: 代码迷 >> Oracle技术 >> ORA-01036: 非法的变量名/编号\n"}
  详细解决方案

ORA-01036: 非法的变量名/编号\n"}

热度:899   发布时间:2016-04-24 08:33:35.0
开发区,贴 了一天了,一个回复的都没有:c# 调用过程,报 {"ORA-01036: 非法的变量名/编号\n"}
http://topic.csdn.net/u/20111229/15/85edf293-d263-4b2f-a858-61b7fe683afa.html?92874

请知道的,帮忙 看一下,谢谢!!

------解决方案--------------------
我已经给你回复了。请关注。
------解决方案--------------------
1、Oracle的更新不能出现Parameters顺序跟传来的参数顺序不一致的情形。

2、字段名太长,有的地方说是要小于32个字符,但我使用,它还要比32小,大家只能尽量控制字段名的长度。

3、虽然在Sql 语句中使用 冒号“:”代表参数,但在创建OracleParameter时,指定的参数名称不能使用冒号,在new OracleParameter时,ParameterName只能使用参数的字符部分 。
------解决方案--------------------
C# code
[url=http://www.cnblogs.com/zwq194/archive/2010/07/12/1775646.html]C#调用Oracle存储过程的方法  [img=http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/16.gif][/img][/url]create or replace procedure proc2(v_id number,v_name varchar2)isbegininsert into test(id,name) values(v_id,v_name);commit;end;  OracleConnection conn = new OracleConnection("server=cw;uid=ls0019999;pwd=aaaaaa");            conn.Open();            OracleCommand cmd = conn.CreateCommand();            cmd.CommandType = CommandType.StoredProcedure;            cmd.CommandText = "proc2";            cmd.Parameters.Add("v_id", OracleType.Number).Direction = ParameterDirection.Input;//指明传入的参数是输入给oracle存储过程用的            cmd.Parameters["v_id"].Value =this.textBox1.Text.Trim();            cmd.Parameters.Add("v_name",OracleType.NVarChar).Direction = ParameterDirection.Input;//指明传入的参数是输入给oracle存储过程用的            cmd.Parameters["v_name"].Value =this.textBox2.Text.Trim();            cmd.ExecuteNonQuery();            conn.Close();
  相关解决方案