Я получил это для работы с небольшой модификацией вашего кода, но я не получил того же исключения, что и вы.
Единственное, что я сделал, это добавил INTO в оператор INSERT кака также двойные кавычки имен параметров в элементах добавления коллекции.
create table DOCS (id varchar2(70) , path varchar2(70) , pages number, userid varchar2(70) , suffix varchar2(70), mask varchar2(70));
OracleDataAdapter oda = new OracleDataAdapter();
insertStatement = "INSERT INTO DOCS (ID, PATH, PAGES, USERID,SUFFIX, MASK) ";
insertStatement += "VALUES (:id, :itemUrl, 1, 'SHAREPOINT\\system',0,'000') ";
conn.Open();
oda.InsertCommand = new OracleCommand(insertStatement, conn);
oda.InsertCommand.Parameters.Add(":id", "test1");
oda.InsertCommand.Parameters.Add(":itemUrl", "test2");
count += oda.InsertCommand.ExecuteNonQuery();
Я думаю, у вас может быть что-то еще, что не видно в вашем образце.
Я знаю, что я получил вашу ошибку (много-много раз), когда у меня есть параметры в кардинальном порядке, которые отличаются от ожидаемого сбора параметров.
Это вызвано привязкой ODP по позиции по умолчанию ИНЕ связывать по имени (как это делала старая г-жа oraClient).
Вы можете убедиться, что параметры действительно находятся в правильном положении, или просто:
oda.InsertCommand.BindByName = true ;
hth