我有一个正在建设使用ODP.NET,由于某种原因一直返回“ORA-01401参数化的插入查询一个C#功能:插入对于列“异常值太大。ODP.NET的InsertCommand错误地返回ORA-01401:插入的值太大,
我已经彻底检查有问题的字符串变量的长度,它属于很好的数据库列的最大大小之下(70个字符长在1024个字符长的VARCHAR2列)。奇怪的是,如果我将值作为字符串而不是参数变量插入,插入就可以正常工作。下面的代码(参数):
connectionString = GetConnectionString();
conn = new OracleConnection(connectionString);
OracleDataAdapter oda = new OracleDataAdapter();
conn.Open();
insertStatement = "INSERT INTO DOCS (ID, PATH, PAGES, USERID,SUFFIX, MASK) ";
insertStatement += "VALUES (:id, :itemUrl, 1, 'SHAREPOINT\\system',0,'000') ";
oda.InsertCommand = new OracleCommand(insertStatement, conn);
oda.InsertCommand.Parameters.Add(":id", docList[0].taskerID.ToString());
oda.InsertCommand.Parameters.Add(":itemUrl", itemUrl);
count += oda.InsertCommand.ExecuteNonQuery();
我在想,也许有我丢失的东西在这里与ODP.NET或确实存在具有ODP.NET,我现在遇到一个错误。我在我的服务器上使用Oracle.DataAccess的9.2.0.7版本。有任何想法吗?
是的,这也正是它,我完全忽略的位置问题的结合。而且我们本周刚刚从System.Data.OracleClient切换,所以这就是为什么它现在只能咬我。非常感谢您的帮助! – GVIrish 2011-05-04 20:37:08