开发区,贴 了一天了,一个回复的都没有:c# 调用过程,报 {"ORA-01036: 非法的变量名/编号\n"} http://topic.csdn.net/u/20111229/15/85edf293-d263-4b2f-a858-61b7fe683afa.html?92874请知道的,帮忙 看一下,谢谢!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 出错:[System.Data.OracleClient.OracleException] = {"ORA-01036: 非法的变量名/编号\n"} 1、Oracle的更新不能出现Parameters顺序跟传来的参数顺序不一致的情形。2、字段名太长,有的地方说是要小于32个字符,但我使用,它还要比32小,大家只能尽量控制字段名的长度。3、虽然在Sql 语句中使用 冒号“:”代表参数,但在创建OracleParameter时,指定的参数名称不能使用冒号,在new OracleParameter时,ParameterName只能使用参数的字符部分 。 OracleConnection DBCon = new OracleConnection(DBCONNStr); try { OracleCommand DBCmd = new OracleCommand("PDICT_TABLETYPE", DBCon); DBCmd.Parameters.Add(new OracleParameter(":iOperateType", OracleType.Number)).Value = Int32.Parse(iOperateType.ToString()); //1添加2修改3删除 OracleParameter pTypeID = new OracleParameter(":v_iTypeId", OracleType.Number); pTypeID.Direction = ParameterDirection.InputOutput; pTypeID.Value = Int32.Parse(v_iTypeId.ToString()); DBCmd.Parameters.Add(pTypeID); //DBCmd.Parameters.Add(new OracleParameter(":V_ITYPEID", OracleType.Number)).Value = 1; DBCmd.Parameters.Add(new OracleParameter(":v_sTypeName", OracleType.VarChar)).Value = v_sTypeName; if (DBCon.State == ConnectionState.Closed) DBCon.Open(); DBCmd.ExecuteNonQuery(); return true; } catch (Exception Ex) { //return false; throw Ex; } finally { DBCon.Close(); } C#调用Oracle存储过程的方法 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(); 问题已解决:请参考:http://forum.csdn.net/PointForum/Manage/TopicManageView.aspx?forumID=302d294a-bb4e-4673-b749-19b8f5e62a07&topicID=85edf293-d263-4b2f-a858-61b7fe683afa&date=2011-12-29+15%3a55%3a08&v=13分共享了! 求推荐本PL/SQL的教学书 怎么进入sqlplus的命令行 触发器的问题(其中使用了v$session) 海量数据中的表的转换问题(没有分了 就这些了 请大家见谅) 内存数据库的问题 这个列的别名该如何写呀 登录oracle服务器,是用“@”还是“$”? imp导入时会不会因为表空间不足而只导入表结构而不到如数据 oracle里怎么创建普通用户? 请大虾帮忙!一个关于日期(Date)问题!急!急!急! 字段名是变量有什么办法 Dec 20 2011 9:58AM 怎么插入到oracle中的date类型的字段中
[System.Data.OracleClient.OracleException] = {"ORA-01036: 非法的变量名/编号\n"}
try
{
OracleCommand DBCmd = new OracleCommand("PDICT_TABLETYPE", DBCon);
DBCmd.Parameters.Add(new OracleParameter(":iOperateType", OracleType.Number)).Value = Int32.Parse(iOperateType.ToString()); //1添加2修改3删除
OracleParameter pTypeID = new OracleParameter(":v_iTypeId", OracleType.Number);
pTypeID.Direction = ParameterDirection.InputOutput;
pTypeID.Value = Int32.Parse(v_iTypeId.ToString());
DBCmd.Parameters.Add(pTypeID);
//DBCmd.Parameters.Add(new OracleParameter(":V_ITYPEID", OracleType.Number)).Value = 1;
DBCmd.Parameters.Add(new OracleParameter(":v_sTypeName", OracleType.VarChar)).Value = v_sTypeName;
if (DBCon.State == ConnectionState.Closed) DBCon.Open();
DBCmd.ExecuteNonQuery();
return true;
}
catch (Exception Ex)
{
//return false;
throw Ex;
}
finally
{
DBCon.Close();
}
create or replace procedure proc2
(
v_id number,
v_name varchar2
)
is
begin
insert 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();
http://forum.csdn.net/PointForum/Manage/TopicManageView.aspx?forumID=302d294a-bb4e-4673-b749-19b8f5e62a07&topicID=85edf293-d263-4b2f-a858-61b7fe683afa&date=2011-12-29+15%3a55%3a08&v=13分共享了!